summaryrefslogtreecommitdiff
path: root/misc/mc/files/patch-vfs-ftpfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'misc/mc/files/patch-vfs-ftpfs.c')
-rw-r--r--misc/mc/files/patch-vfs-ftpfs.c131
1 files changed, 0 insertions, 131 deletions
diff --git a/misc/mc/files/patch-vfs-ftpfs.c b/misc/mc/files/patch-vfs-ftpfs.c
deleted file mode 100644
index bfd46fef3436..000000000000
--- a/misc/mc/files/patch-vfs-ftpfs.c
+++ /dev/null
@@ -1,131 +0,0 @@
---- vfs/ftpfs.c.orig Thu Dec 26 08:21:43 2002
-+++ vfs/ftpfs.c Tue Jun 15 03:15:09 2004
-@@ -266,8 +266,7 @@
- switch (sscanf(answer, "%d", &code)){
- case 0:
- if (string_buf) {
-- strncpy (string_buf, answer, string_len - 1);
-- *(string_buf + string_len - 1) = 0;
-+ g_strlcpy (string_buf, answer, string_len);
- }
- code = 500;
- return 5;
-@@ -286,8 +285,7 @@
- }
- }
- if (string_buf){
-- strncpy (string_buf, answer, string_len - 1);
-- *(string_buf + string_len - 1) = 0;
-+ g_strlcpy (string_buf, answer, string_len);
- }
- return code / 100;
- }
-@@ -321,28 +319,28 @@
- va_list ap;
- char *str, *fmt_str;
- int status;
-- int sock = SUP.sock;
-+ int cmdlen;
-
- va_start (ap, fmt);
- fmt_str = g_strdup_vprintf (fmt, ap);
- va_end (ap);
-
-- status = strlen (fmt_str);
-- str = g_realloc (fmt_str, status + 3);
-- strcpy (str + status, "\r\n");
-+ cmdlen = strlen (fmt_str);
-+ str = g_realloc (fmt_str, cmdlen + 3);
-+ strcpy (str + cmdlen, "\r\n");
-
- if (logfile){
- if (strncmp (str, "PASS ", 5) == 0){
- fputs ("PASS <Password not logged>\r\n", logfile);
- } else
-- fwrite (str, status + 2, 1, logfile);
-+ fwrite (str, cmdlen + 2, 1, logfile);
-
- fflush (logfile);
- }
-
- got_sigpipe = 0;
- enable_interrupt_key ();
-- status = write (SUP.sock, str, status + 2);
-+ status = write (SUP.sock, str, cmdlen + 2);
-
- if (status < 0){
- code = 421;
-@@ -353,7 +351,7 @@
- level = 1;
- status = reconnect (me, super);
- level = 0;
-- if (status && write (SUP.sock, str, status + 2) > 0)
-+ if (status && write (SUP.sock, str, cmdlen + 2) > 0)
- goto ok;
- }
- got_sigpipe = 1;
-@@ -367,7 +365,7 @@
- disable_interrupt_key ();
-
- if (wait_reply)
-- return get_reply (me, sock, (wait_reply & WANT_STRING) ? reply_str : NULL, sizeof (reply_str)-1);
-+ return get_reply (me, SUP.sock, (wait_reply & WANT_STRING) ? reply_str : NULL, sizeof (reply_str)-1);
- return COMPLETE;
- }
-
-@@ -903,23 +901,29 @@
- int data, len = sizeof(data_addr);
- struct protoent *pe;
-
-- getsockname(SUP.sock, (struct sockaddr *) &data_addr, &len);
-- data_addr.sin_port = 0;
--
- pe = getprotobyname("tcp");
- if (pe == NULL)
- ERRNOR (EIO, -1);
-+again:
-+ if (getsockname(SUP.sock, (struct sockaddr *) &data_addr, &len) == -1)
-+ ERRNOR (EIO, -1);
-+ data_addr.sin_port = 0;
-+
- data = socket (AF_INET, SOCK_STREAM, pe->p_proto);
- if (data < 0)
- ERRNOR (EIO, -1);
-
- if (SUP.use_passive_connection){
-- if ((SUP.use_passive_connection = setup_passive (me, super, data, &data_addr)))
-+ if (setup_passive (me, super, data, &data_addr))
- return data;
-
- SUP.use_source_route = 0;
- SUP.use_passive_connection = 0;
- print_vfs_message (_("ftpfs: could not setup passive mode"));
-+
-+ /* data or data_addr may be damaged by setup_passive */
-+ close (data);
-+ goto again;
- }
-
- /* If passive setup fails, fallback to active connections */
-@@ -971,11 +975,12 @@
- data = s;
- else {
- data = accept (s, (struct sockaddr *)&from, &fromlen);
-- close(s);
- if (data < 0) {
- my_errno = errno;
-+ close(s);
- return -1;
- }
-+ close(s);
- }
- disable_interrupt_key();
- return data;
-@@ -1019,6 +1024,7 @@
- gettimeofday (&tim, NULL);
- if (tim.tv_sec > start_tim.tv_sec + ABORT_TIMEOUT) {
- /* server keeps sending, drop the connection and reconnect */
-+ close (dsock);
- reconnect (me, super);
- return;
- }