]> granicus.if.org Git - php/commitdiff
MFH: fix 2 segfaults in ZTS mode
authorAntony Dovgal <tony2001@php.net>
Fri, 11 Apr 2008 11:00:24 +0000 (11:00 +0000)
committerAntony Dovgal <tony2001@php.net>
Fri, 11 Apr 2008 11:00:24 +0000 (11:00 +0000)
ext/posix/posix.c

index 248bd785b0f17f226c9181b47c4cc063f0ce7a01..2f33e96eeb564c2fdbeba7cff44a68fcc50b4342 100644 (file)
@@ -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;