summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2014-04-30 13:56:01 +0100
committerVincent Sanders <vince@kyllikki.org>2014-04-30 13:56:01 +0100
commita73f22c966e97fc3a706ff9804aa2ea73a4d5428 (patch)
tree2313aab403877edb9b990a02282e107c07ff79ca
parent3a7fb23b878167d007df21fee25413d483ebdc79 (diff)
downloadnetsurf-a73f22c966e97fc3a706ff9804aa2ea73a4d5428.tar.gz
netsurf-a73f22c966e97fc3a706ff9804aa2ea73a4d5428.tar.bz2
make gtk commandline filename loading use snprintf
-rw-r--r--gtk/gui.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gtk/gui.c b/gtk/gui.c
index 1c108a165..3147bf1b8 100644
--- a/gtk/gui.c
+++ b/gtk/gui.c
@@ -421,13 +421,15 @@ static void gui_init(int argc, char** argv, char **respath)
if (argc > 1) {
struct stat fs;
if (stat(argv[1], &fs) == 0) {
+ size_t addrlen;
char *rp = realpath(argv[1], NULL);
assert(rp != NULL);
- addr = malloc(SLEN("file://") + strlen(rp) + /*\0 */ 1);
+
+ /* calculate file url length including terminator */
+ addrlen = SLEN("file://") + strlen(rp) + 1;
+ addr = malloc(addrlen);
assert(addr != NULL);
- /* These are safe thanks to the above sum */
- strcpy(addr, "file://");
- strcat(addr, rp);
+ snprintf(addr, addrlen, "file://%s", rp);
free(rp);
} else {
addr = strdup(argv[1]);