ID: 46948 Updated by: tony2...@php.net Reported By: dvice_null at yahoo dot com -Status: Open +Status: Assigned Bug Type: Unknown/Other Function Operating System: Not relevant PHP Version: 6CVS-2008-12-26 (CVS) -Assigned To: +Assigned To: derick
Previous Comments: ------------------------------------------------------------------------ [2008-12-26 21:59:27] fel...@php.net Truly, I think that Derick really free that vars. in another place. ------------------------------------------------------------------------ [2008-12-26 21:51:44] fel...@php.net I think something like this: Index: ext/date/lib/parse_tz.c =================================================================== RCS file: /repository/php-src/ext/date/lib/parse_tz.c,v retrieving revision 1.20.2.6.2.13.2.4 diff -u -p -r1.20.2.6.2.13.2.4 parse_tz.c --- ext/date/lib/parse_tz.c 9 Aug 2008 22:01:08 -0000 1.20.2.6.2.13.2.4 +++ ext/date/lib/parse_tz.c 26 Dec 2008 21:47:20 -0000 @@ -100,6 +100,7 @@ static void read_transistions(char **tzf cbuffer = (unsigned char*) malloc(tz->timecnt * sizeof(unsigned char)); if (!cbuffer) { + free(buffer); return; } memcpy(cbuffer, *tzf, sizeof(unsigned char) * tz->timecnt); @@ -125,6 +126,7 @@ static void read_types(char **tzf, timel tz->type = (ttinfo*) malloc(tz->typecnt * sizeof(struct ttinfo)); if (!tz->type) { + free(buffer); return; } @@ -153,6 +155,9 @@ static void read_types(char **tzf, timel tz->leap_times = (tlinfo*) malloc(tz->leapcnt * sizeof(tlinfo)); if (!tz->leap_times) { + free(leap_buffer); + free(tz->timezone_abbr); + free(tz->types); return; } for (i = 0; i < tz->leapcnt; i++) { ------------------------------------------------------------------------ [2008-12-26 21:11:53] dvice_null at yahoo dot com Two similar problems in the same file. Let me know if you want separate bug reports about these: ---------------- ext/date/lib/parse_tz.c:124]: Memory leak: buffer if (!tz->type) { return; } ---------------- ext/date/lib/parse_tz.c:152: Memory leak: leap_buffer if (!tz->leap_times) { return; } ------------------------------------------------------------------------ [2008-12-26 20:55:43] dvice_null at yahoo dot com Description: ------------ In file ext/date/lib/parse_tz.c:99: Variable "buffer" leaks memory if "cbuffer" is null in this code: if (!cbuffer) { return; } This bug was found using cppcheck: http://cppcheck.wiki.sourceforge.net/ ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=46948&edit=1