iliaa           Sun Aug 31 17:09:14 2003 EDT

  Modified files:              (Branch: PHP_4_3)
    /php-src/ext/ftp    ftp.c 
  Log:
  MFH: Make sure that ftp->data is nulled after it's freed. This may fix bug
  #25294 & bug #25296.
  
  
Index: php-src/ext/ftp/ftp.c
diff -u php-src/ext/ftp/ftp.c:1.68.2.8 php-src/ext/ftp/ftp.c:1.68.2.9
--- php-src/ext/ftp/ftp.c:1.68.2.8      Fri Jun 27 12:42:50 2003
+++ php-src/ext/ftp/ftp.c       Sun Aug 31 17:09:14 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: ftp.c,v 1.68.2.8 2003/06/27 16:42:50 sniper Exp $ */
+/* $Id: ftp.c,v 1.68.2.9 2003/08/31 21:09:14 iliaa Exp $ */
 
 #include "php.h"
 
@@ -715,8 +715,7 @@
        if (type == FTPTYPE_ASCII && lastch == '\r')
                php_stream_putc(outstream, '\r');
 
-       data = data_close(ftp, data);
-       ftp->data = NULL;
+       ftp->data = data = data_close(ftp, data);
 
        if (!ftp_getresp(ftp) || (ftp->resp != 226 && ftp->resp != 250)) {
                goto bail;
@@ -724,8 +723,7 @@
 
        return 1;
 bail:
-       data_close(ftp, data);
-       ftp->data = NULL;
+       ftp->data = data_close(ftp, data);
        return 0;
 }
 /* }}} */
@@ -798,14 +796,14 @@
        if (size && my_send(ftp, data->fd, data->buf, size) != size)
                goto bail;
 
-       data = data_close(ftp, data);
+       ftp->data = data = data_close(ftp, data);
 
        if (!ftp_getresp(ftp) || (ftp->resp != 226 && ftp->resp != 250))
                goto bail;
 
        return 1;
 bail:
-       data_close(ftp, data);
+       ftp->data = data_close(ftp, data);
        return 0;
 }
 /* }}} */
@@ -1498,7 +1496,7 @@
                }
        }
 
-       data = data_close(ftp, data);
+       ftp->data = data = data_close(ftp, data);
 
        if (ferror(tmpfp))
                goto bail;
@@ -1538,7 +1536,7 @@
        return ret;
 bail:
        if (data)
-               data_close(ftp, data);
+               ftp->data = data_close(ftp, data);
        fclose(tmpfp);
        if (ret)
                efree(ret);
@@ -1594,7 +1592,7 @@
        return (ftp_nb_continue_read(ftp));
 
 bail:
-       data_close(ftp, data);
+       ftp->data = data_close(ftp, data);
        return PHP_FTP_FAILED;
 }
 /* }}} */
@@ -1647,7 +1645,7 @@
        if (type == FTPTYPE_ASCII && lastch == '\r')
                php_stream_putc(ftp->stream, '\r');
 
-       data = data_close(ftp, data);
+       ftp->data = data = data_close(ftp, data);
 
        if (!ftp_getresp(ftp) || (ftp->resp != 226 && ftp->resp != 250)) {
                goto bail;
@@ -1657,7 +1655,7 @@
        return PHP_FTP_FINISHED;
 bail:
        ftp->nb = 0;
-       data_close(ftp, data);
+       ftp->data = data_close(ftp, data);
        return PHP_FTP_FAILED;
 }
 /* }}} */
@@ -1709,7 +1707,7 @@
        return (ftp_nb_continue_write(ftp));
 
 bail:
-       data_close(ftp, data);
+       ftp->data = data_close(ftp, data);
        return PHP_FTP_FAILED;
 
 }
@@ -1764,7 +1762,7 @@
        ftp->nb = 0;
        return PHP_FTP_FINISHED;
 bail:
-       data_close(ftp, ftp->data);
+       ftp->data = data_close(ftp, ftp->data);
        ftp->nb = 0;
        return PHP_FTP_FAILED;
 }

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to