diff -Nru /n/sources/plan9/sys/src/libhttpd/redirected.c /sys/src/libhttpd/redirected.c --- /n/sources/plan9/sys/src/libhttpd/redirected.c Thu Jul 15 21:59:48 2010 +++ /sys/src/libhttpd/redirected.c Sun Nov 6 00:00:00 2016 @@ -9,7 +9,7 @@ Hio *hout; char *s, *ss, *scheme, *host; char sayport[NETPATHLEN]; - int n; + int n, nb; scheme = c->scheme? c->scheme: "http"; host = c->head.host; @@ -19,8 +19,9 @@ s = strrchr(c->req.uri, '/'); if(s != nil) *s = '\0'; - ss = halloc(c, strlen(c->req.uri) + strlen(uri) + 2 + UTFmax); - sprint(ss, "%s/%s", c->req.uri, uri); + nb = strlen(c->req.uri) + strlen(uri) + 2 + UTFmax; + ss = halloc(c, nb); + snprint(ss, nb, "%s/%s", c->req.uri, uri); uri = ss; if(s != nil) *s = '/';