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