From: Antony Dovgal Date: Fri, 11 Apr 2008 11:00:24 +0000 (+0000) Subject: MFH: fix 2 segfaults in ZTS mode X-Git-Tag: php-5.2.6~26 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1e20b1ed7d954d1f0be4230c2b41cd80691416bc;p=php MFH: fix 2 segfaults in ZTS mode --- diff --git a/ext/posix/posix.c b/ext/posix/posix.c index 248bd785b0..2f33e96eeb 100644 --- a/ext/posix/posix.c +++ b/ext/posix/posix.c @@ -875,7 +875,7 @@ PHP_FUNCTION(posix_getgrgid) #if defined(ZTS) && defined(HAVE_GETGRGID_R) && defined(_SC_GETGR_R_SIZE_MAX) int ret; struct group _g; - struct group *retgrptr; + struct group *retgrptr = NULL; long grbuflen; char *grbuf; #endif @@ -894,7 +894,7 @@ PHP_FUNCTION(posix_getgrgid) grbuf = emalloc(grbuflen); ret = getgrgid_r(gid, &_g, grbuf, grbuflen, &retgrptr); - if (ret) { + if (ret || retgrptr == NULL) { POSIX_G(last_error) = ret; efree(grbuf); RETURN_FALSE; @@ -1009,7 +1009,7 @@ PHP_FUNCTION(posix_getpwuid) pwbuf = emalloc(pwbuflen); ret = getpwuid_r(uid, &_pw, pwbuf, pwbuflen, &retpwptr); - if (ret) { + if (ret || retpwptr == NULL) { POSIX_G(last_error) = ret; efree(pwbuf); RETURN_FALSE;