92715263ac5030111c48f70212e96c599d349872 galt Wed May 25 14:58:54 2011 -0700 fixing cgiEncoding of user and password in redirected urls diff --git src/lib/net.c src/lib/net.c index 7dd98fc..fb01a99 100644 --- src/lib/net.c +++ src/lib/net.c @@ -481,35 +481,39 @@ } /* What's left is the host. */ safecpy(parsed->host, sizeof(parsed->host), s); } char *urlFromNetParsedUrl(struct netParsedUrl *npu) /* Build URL from netParsedUrl structure */ { struct dyString *dy = newDyString(512); dyStringAppend(dy, npu->protocol); dyStringAppend(dy, "://"); if (npu->user[0] != 0) { - dyStringAppend(dy, npu->user); + char *encUser = cgiEncode(npu->user); + dyStringAppend(dy, encUser); + freeMem(encUser); if (npu->password[0] != 0) { dyStringAppend(dy, ":"); - dyStringAppend(dy, npu->password); + char *encPassword = cgiEncode(npu->password); + dyStringAppend(dy, encPassword); + freeMem(encPassword); } dyStringAppend(dy, "@"); } dyStringAppend(dy, npu->host); /* do not include port if it is the default */ if (!( (sameString(npu->protocol, "ftp" ) && sameString("21", npu->port)) || (sameString(npu->protocol, "http" ) && sameString("80", npu->port)) || (sameString(npu->protocol, "https") && sameString("443",npu->port)) )) { dyStringAppend(dy, ":"); dyStringAppend(dy, npu->port); } dyStringAppend(dy, npu->file);