diff --git a/src/main/url.cc b/src/main/url.cc index 33f22b9ca..11e7fa5e1 100644 --- a/src/main/url.cc +++ b/src/main/url.cc @@ -886,7 +886,6 @@ gint main_url_handler(const gchar *url, gboolean clicked) // another minor nightmare: re-encode / and : in hex. gchar *place; - gchar tmpbuf[1023]; GString *tmpstr = g_string_new(NULL); place = (char *)strchr(url, '?'); // url's beginning, as-is. @@ -894,9 +893,8 @@ gint main_url_handler(const gchar *url, gboolean clicked) g_string_free(tmpstr, TRUE); return 0; } - strncpy(tmpbuf, url, (++place) - url); - tmpbuf[place - url] = '\0'; - tmpstr = g_string_append(tmpstr, tmpbuf); + ++place; + tmpstr = g_string_append_len(tmpstr, url, place - url); for (/* */; *place; ++place) { switch (*place) { case '/':