From: Antony Dovgal Date: Fri, 11 Apr 2008 10:59:50 +0000 (+0000) Subject: fix 2 segfaults in ZTS mode X-Git-Tag: RELEASE_2_0_0b1~457 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0e7655209a777167d0a62f1ea016a5b584d5911b;p=php fix 2 segfaults in ZTS mode --- diff --git a/ext/posix/posix.c b/ext/posix/posix.c index dc85458098..3559095391 100644 --- a/ext/posix/posix.c +++ b/ext/posix/posix.c @@ -873,7 +873,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 @@ -892,7 +892,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;