summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Dovgal <tony2001@php.net>2008-04-11 11:00:03 +0000
committerAntony Dovgal <tony2001@php.net>2008-04-11 11:00:03 +0000
commitc300f98ee061f69b98345b8ba3f36ef7f11ad419 (patch)
treeb16f85ca36274d2543d0f8c36f65855891f120d8
parentd9dd1b9e144749e9563c789d89297fefc173766b (diff)
downloadphp-git-c300f98ee061f69b98345b8ba3f36ef7f11ad419.tar.gz
MFH: fix 2 segfaults in ZTS mode
-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 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;