vimb: Do not crash when opening a new tab via context menu Backported from upstream commit 79c69ba194db0e4ddfb4ff985bc51c3b14ac8dd3. PKGREVISION++diff -r1.30 -r1.31 pkgsrc/www/vimb/Makefile
(leot)
@@ -1,36 +1,36 @@ | @@ -1,36 +1,36 @@ | |||
1 | # $NetBSD: Makefile,v 1.30 2019/04/03 00:33:13 ryoon Exp $ | 1 | # $NetBSD: Makefile,v 1.31 2019/05/26 20:25:13 leot Exp $ | |
2 | 2 | |||
3 | DISTNAME= vimb-3.4.0 | 3 | DISTNAME= vimb-3.4.0 | |
4 | PKGREVISION= 1 | 4 | PKGREVISION= 2 | |
5 | CATEGORIES= www | 5 | CATEGORIES= www | |
6 | MASTER_SITES= ${MASTER_SITE_GITHUB:=fanglingsu/} | 6 | MASTER_SITES= ${MASTER_SITE_GITHUB:=fanglingsu/} | |
7 | 7 | |||
8 | MAINTAINER= leot@NetBSD.org | 8 | MAINTAINER= leot@NetBSD.org | |
9 | HOMEPAGE= https://fanglingsu.github.io/vimb/ | 9 | HOMEPAGE= https://fanglingsu.github.io/vimb/ | |
10 | COMMENT= Vim-like webkit browser | 10 | COMMENT= Vim-like webkit browser | |
11 | LICENSE= gnu-gpl-v3 | 11 | LICENSE= gnu-gpl-v3 | |
12 | 12 | |||
13 | USE_TOOLS+= gmake pkg-config | 13 | USE_TOOLS+= gmake pkg-config | |
14 | USE_LANGUAGES= c99 | 14 | USE_LANGUAGES= c99 | |
15 | 15 | |||
16 | CFLAGS.NetBSD+= -D_NETBSD_SOURCE # needed for LOCK_* macros in <fcntl.h> | 16 | CFLAGS.NetBSD+= -D_NETBSD_SOURCE # needed for LOCK_* macros in <fcntl.h> | |
17 | LDFLAGS.SunOS+= -lsocket -lnsl | 17 | LDFLAGS.SunOS+= -lsocket -lnsl | |
18 | 18 | |||
19 | # Bump _XOPEN_SOURCE version to 600 in order to avoid "Compiler or options | 19 | # Bump _XOPEN_SOURCE version to 600 in order to avoid "Compiler or options | |
20 | # invalid for pre-UNIX 03 X/Open applications" error on SunOS | 20 | # invalid for pre-UNIX 03 X/Open applications" error on SunOS | |
21 | SUBST_CLASSES+= configmk | 21 | SUBST_CLASSES+= configmk | |
22 | SUBST_STAGE.configmk= pre-configure | 22 | SUBST_STAGE.configmk= pre-configure | |
23 | SUBST_MESSAGE.configmk= Bump _XOPEN_SOURCE version | 23 | SUBST_MESSAGE.configmk= Bump _XOPEN_SOURCE version | |
24 | SUBST_FILES.configmk= config.mk | 24 | SUBST_FILES.configmk= config.mk | |
25 | SUBST_SED.configmk+= -e '/_XOPEN_SOURCE/ s/500/600/' | 25 | SUBST_SED.configmk+= -e '/_XOPEN_SOURCE/ s/500/600/' | |
26 | 26 | |||
27 | EGDIR= ${PREFIX}/share/examples/vimb | 27 | EGDIR= ${PREFIX}/share/examples/vimb | |
28 | 28 | |||
29 | MAKE_FLAGS+= EXAMPLEPREFIX="${DESTDIR}${EGDIR}" | 29 | MAKE_FLAGS+= EXAMPLEPREFIX="${DESTDIR}${EGDIR}" | |
30 | MAKE_FLAGS+= MANPREFIX="${DESTDIR}${PREFIX}/${PKGMANDIR}" | 30 | MAKE_FLAGS+= MANPREFIX="${DESTDIR}${PREFIX}/${PKGMANDIR}" | |
31 | MAKE_FLAGS+= RUNPREFIX="${PREFIX}" | 31 | MAKE_FLAGS+= RUNPREFIX="${PREFIX}" | |
32 | 32 | |||
33 | .include "../../sysutils/desktop-file-utils/desktopdb.mk" | 33 | .include "../../sysutils/desktop-file-utils/desktopdb.mk" | |
34 | .include "../../www/webkit-gtk/buildlink3.mk" | 34 | .include "../../www/webkit-gtk/buildlink3.mk" | |
35 | .include "../../x11/gtk3/buildlink3.mk" | 35 | .include "../../x11/gtk3/buildlink3.mk" | |
36 | .include "../../mk/bsd.pkg.mk" | 36 | .include "../../mk/bsd.pkg.mk" |
@@ -1,7 +1,9 @@ | @@ -1,7 +1,9 @@ | |||
1 | $NetBSD: distinfo,v 1.4 2019/03/31 20:52:16 leot Exp $ | 1 | $NetBSD: distinfo,v 1.5 2019/05/26 20:25:13 leot Exp $ | |
2 | 2 | |||
3 | SHA1 (vimb-3.4.0.tar.gz) = 6a179822fd5bb03a4597ffc7267ccd2e8357ad16 | 3 | SHA1 (vimb-3.4.0.tar.gz) = 6a179822fd5bb03a4597ffc7267ccd2e8357ad16 | |
4 | RMD160 (vimb-3.4.0.tar.gz) = a339e8227bbace0004d10f6d36095079559da973 | 4 | RMD160 (vimb-3.4.0.tar.gz) = a339e8227bbace0004d10f6d36095079559da973 | |
5 | SHA512 (vimb-3.4.0.tar.gz) = 80586c1ee5836b848a63cb4efd53c4a75fbeede0a3f6ee405b6e145063a17c32c3856af122b6a385cd2283519b86ad480fbf88c978ec0a32830c74d68c95a6ea | 5 | SHA512 (vimb-3.4.0.tar.gz) = 80586c1ee5836b848a63cb4efd53c4a75fbeede0a3f6ee405b6e145063a17c32c3856af122b6a385cd2283519b86ad480fbf88c978ec0a32830c74d68c95a6ea | |
6 | Size (vimb-3.4.0.tar.gz) = 138452 bytes | 6 | Size (vimb-3.4.0.tar.gz) = 138452 bytes | |
7 | SHA1 (patch-Makefile) = 973017a0cc4b2a65535aaa40ae2eb63a4b020acf | 7 | SHA1 (patch-Makefile) = 973017a0cc4b2a65535aaa40ae2eb63a4b020acf | |
8 | SHA1 (patch-src_main.c) = 127beefbe9cb853a7f2e1b7a0f19d4e87cbc9db3 | |||
9 | SHA1 (patch-src_util.c) = 8794f09aaf86cb2e19372f404e3c60fa1b045505 |
$NetBSD: patch-src_main.c,v 1.1 2019/05/26 20:25:13 leot Exp $
Backport upstream commit 79c69ba194db0e4ddfb4ff985bc51c3b14ac8dd3.
Fix segfault on open in new tabe from context menu #556.
--- src/main.c.orig 2019-03-26 22:47:03.000000000 +0000
+++ src/main.c
@@ -1347,17 +1347,22 @@ static void on_webview_load_changed(WebK
WebKitLoadEvent event, Client *c)
{
GTlsCertificateFlags tlsflags;
+ const char *raw_uri;
char *uri = NULL;
+ raw_uri = webkit_web_view_get_uri(webview);
+ if (raw_uri) {
+ uri = util_sanitize_uri(raw_uri);
+ }
+
switch (event) {
case WEBKIT_LOAD_STARTED:
#ifdef FEATURE_AUTOCMD
- autocmd_run(c, AU_LOAD_STARTED, webkit_web_view_get_uri(webview), NULL);
+ autocmd_run(c, AU_LOAD_STARTED, raw_uri, NULL);
#endif
/* update load progress in statusbar */
c->state.progress = 0;
vb_statusbar_update(c);
- uri = util_sanitize_uri(webkit_web_view_get_uri(webview));
set_title(c, uri);
/* Make sure hinting is cleared before the new page is loaded.
* Without that vimb would still be in hinting mode after hinting
@@ -1379,10 +1384,9 @@ static void on_webview_load_changed(WebK
* right place to remove the flag. */
c->mode->flags &= ~FLAG_IGNORE_FOCUS;
#ifdef FEATURE_AUTOCMD
- autocmd_run(c, AU_LOAD_COMMITTED, webkit_web_view_get_uri(webview), NULL);
+ autocmd_run(c, AU_LOAD_COMMITTED, raw_uri, NULL);
#endif
/* save the current URI in register % */
- uri = util_sanitize_uri(webkit_web_view_get_uri(webview));
vb_register_add(c, '%', uri);
/* check if tls is on and the page is trusted */
if (g_str_has_prefix(uri, "https://")) {
@@ -1405,9 +1409,8 @@ static void on_webview_load_changed(WebK
break;
case WEBKIT_LOAD_FINISHED:
- uri = util_sanitize_uri(webkit_web_view_get_uri(webview));
#ifdef FEATURE_AUTOCMD
- autocmd_run(c, AU_LOAD_FINISHED, webkit_web_view_get_uri(webview), NULL);
+ autocmd_run(c, AU_LOAD_FINISHED, raw_uri, NULL);
#endif
c->state.progress = 100;
if (strncmp(uri, "about:", 6)) {
$NetBSD: patch-src_util.c,v 1.1 2019/05/26 20:25:13 leot Exp $
Backport upstream commit 79c69ba194db0e4ddfb4ff985bc51c3b14ac8dd3.
Fix segfault on open in new tabe from context menu #556.
--- src/util.c.orig 2019-03-26 22:47:03.000000000 +0000
+++ src/util.c
@@ -821,7 +821,7 @@ char *util_sanitize_filename(char *filen
/**
* Strips password from a uri.
*
- * Return newly allocated string.
+ * Return newly allocated string or NULL.
*/
char *util_sanitize_uri(const char *uri_str)
{
@@ -829,6 +829,9 @@ char *util_sanitize_uri(const char *uri_
char *sanitized_uri;
char *for_display;
+ if (!uri_str) {
+ return NULL;
+ }
#if WEBKIT_CHECK_VERSION(2, 24, 0)
for_display = webkit_uri_for_display(uri_str);
#else