summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorAntony Dovgal <tony2001@php.net>2008-04-11 11:00:24 +0000
committerAntony Dovgal <tony2001@php.net>2008-04-11 11:00:24 +0000
commit1e20b1ed7d954d1f0be4230c2b41cd80691416bc (patch)
treeb895dc5c02ed63e51e84c15a15d5146ce28e6bef /ext
parent9d700f942f61ab7cdfc776a20d37b0ee624eedad (diff)
downloadphp-git-1e20b1ed7d954d1f0be4230c2b41cd80691416bc.tar.gz
MFH: fix 2 segfaults in ZTS mode
Diffstat (limited to 'ext')
-rw-r--r--ext/posix/posix.c6
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;