diff options
author | Antony Dovgal <tony2001@php.net> | 2008-04-11 11:00:03 +0000 |
---|---|---|
committer | Antony Dovgal <tony2001@php.net> | 2008-04-11 11:00:03 +0000 |
commit | c300f98ee061f69b98345b8ba3f36ef7f11ad419 (patch) | |
tree | b16f85ca36274d2543d0f8c36f65855891f120d8 | |
parent | d9dd1b9e144749e9563c789d89297fefc173766b (diff) | |
download | php-git-c300f98ee061f69b98345b8ba3f36ef7f11ad419.tar.gz |
MFH: fix 2 segfaults in ZTS mode
-rw-r--r-- | ext/posix/posix.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/ext/posix/posix.c b/ext/posix/posix.c index 2e93e2e35c..ddfd5845a4 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; |