Module Name: src Committed By: joerg Date: Fri Oct 16 19:01:04 UTC 2009
Modified Files: src/distrib/utils/sysinst: net.c Log Message: Allow setting an empty base directory. FTP server like tnftpd do not allow ftp://foo//bar and similar URLs. To generate a diff of this commit: cvs rdiff -u -r1.122 -r1.123 src/distrib/utils/sysinst/net.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/distrib/utils/sysinst/net.c diff -u src/distrib/utils/sysinst/net.c:1.122 src/distrib/utils/sysinst/net.c:1.123 --- src/distrib/utils/sysinst/net.c:1.122 Tue Apr 7 11:49:18 2009 +++ src/distrib/utils/sysinst/net.c Fri Oct 16 19:01:03 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: net.c,v 1.122 2009/04/07 11:49:18 joerg Exp $ */ +/* $NetBSD: net.c,v 1.123 2009/10/16 19:01:03 joerg Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -932,7 +932,7 @@ const char *ftp_opt; char ftp_user_encoded[STRSIZE]; char ftp_dir_encoded[STRSIZE]; - char *cp; + char *cp, *set_dir2; int rval; /* @@ -965,9 +965,14 @@ cp = url_encode(ftp_dir_encoded, ftp.dir, ftp_dir_encoded + sizeof ftp_dir_encoded - 1, RFC1738_SAFE_LESS_SHELL_PLUS_SLASH, 1); - if (set_dir[0] != '/') + if (cp != ftp_dir_encoded && cp[-1] != '/') *cp++ = '/'; - url_encode(cp, set_dir, + + set_dir2 = set_dir; + while (*set_dir2 == '/') + ++set_dir2; + + url_encode(cp, set_dir2, ftp_dir_encoded + sizeof ftp_dir_encoded, RFC1738_SAFE_LESS_SHELL_PLUS_SLASH, 0);