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);