iliaa           Sun Aug 31 17:07:03 2003 EDT

  Modified files:              
    /php-src/ext/ftp    ftp.c 
  Log:
  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.89 php-src/ext/ftp/ftp.c:1.90
--- php-src/ext/ftp/ftp.c:1.89  Mon Aug 11 20:55:58 2003
+++ php-src/ext/ftp/ftp.c       Sun Aug 31 17:07:01 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: ftp.c,v 1.89 2003/08/12 00:55:58 iliaa Exp $ */
+/* $Id: ftp.c,v 1.90 2003/08/31 21:07:01 iliaa Exp $ */
 
 #include "php.h"
 
@@ -818,8 +818,7 @@
                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;
@@ -827,8 +826,7 @@
 
        return 1;
 bail:
-       data_close(ftp, data);
-       ftp->data = NULL;
+       ftp->data = data_close(ftp, data);
        return 0;
 }
 /* }}} */
@@ -903,14 +901,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;
 }
 /* }}} */
@@ -1627,7 +1625,7 @@
                }
        }
 
-       data = data_close(ftp, data);
+       ftp->data = data = data_close(ftp, data);
 
        if (ferror(tmpfp)) {
                goto bail;
@@ -1665,7 +1663,7 @@
        return ret;
 bail:
        if (data)
-               data_close(ftp, data);
+               ftp->data = data_close(ftp, data);
        fclose(tmpfp);
        if (ret)
                efree(ret);
@@ -1729,7 +1727,7 @@
        return (ftp_nb_continue_read(ftp TSRMLS_CC));
 
 bail:
-       data_close(ftp, data);
+       ftp->data = data_close(ftp, data);
        return PHP_FTP_FAILED;
 }
 /* }}} */
@@ -1782,7 +1780,7 @@
                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;
@@ -1792,7 +1790,7 @@
        return PHP_FTP_FINISHED;
 bail:
        ftp->nb = 0;
-       data_close(ftp, data);
+       ftp->data = data_close(ftp, data);
        return PHP_FTP_FAILED;
 }
 /* }}} */
@@ -1845,7 +1843,7 @@
        return (ftp_nb_continue_write(ftp TSRMLS_CC));
 
 bail:
-       data_close(ftp, data);
+       ftp->data = data_close(ftp, data);
        return PHP_FTP_FAILED;
 }
 /* }}} */
@@ -1897,7 +1895,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