diff options
| author | Antony Dovgal <tony2001@php.net> | 2008-04-11 11:00:24 +0000 |
|---|---|---|
| committer | Antony Dovgal <tony2001@php.net> | 2008-04-11 11:00:24 +0000 |
| commit | 1e20b1ed7d954d1f0be4230c2b41cd80691416bc (patch) | |
| tree | b895dc5c02ed63e51e84c15a15d5146ce28e6bef /ext | |
| parent | 9d700f942f61ab7cdfc776a20d37b0ee624eedad (diff) | |
| download | php-git-1e20b1ed7d954d1f0be4230c2b41cd80691416bc.tar.gz | |
MFH: fix 2 segfaults in ZTS mode
Diffstat (limited to 'ext')
| -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 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; |
