]> granicus.if.org Git - php/commitdiff
Fix #80366: Return Value of zend_fstat() not Checked
authorChristoph M. Becker <cmbecker69@gmx.de>
Tue, 17 Nov 2020 13:42:22 +0000 (14:42 +0100)
committerChristoph M. Becker <cmbecker69@gmx.de>
Tue, 24 Nov 2020 12:09:16 +0000 (13:09 +0100)
In the somewhat unlikely case that `zend_fstat()` fails, we must not
proceed executing the function, but return `false` instead.

Patch based on the patch contributed by sagpant at microsoft dot com.

Closes GH-6432.

NEWS
ext/standard/iptc.c

diff --git a/NEWS b/NEWS
index 9b701be3faa122fb0703e0501a4c75743b6e04b3..5661ce119d3a50ee6521829645aee564457f52eb 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -11,6 +11,9 @@ PHP                                                                        NEWS
   . Fixed bug #80362 (Running dtrace scripts can cause php to crash).
     (al at coralnet dot name)
 
+- Standard:
+  . Fixed bug #80366 (Return Value of zend_fstat() not Checked). (sagpant, cmb)
+
 - Tidy:
   . Fixed bug #77594 (ob_tidyhandler is never reset). (cmb)
 
index f3c17dadd92546f54bdad66d1eaa0d5b7bf50026..985d1416f565fac66be56fb9165ce769eb4678e4 100644 (file)
@@ -217,7 +217,9 @@ PHP_FUNCTION(iptcembed)
        }
 
        if (spool < 2) {
-               zend_fstat(fileno(fp), &sb);
+               if (zend_fstat(fileno(fp), &sb) != 0) {
+                       RETURN_FALSE;
+               }
 
                spoolbuf = zend_string_safe_alloc(1, iptcdata_len + sizeof(psheader) + 1024 + 1, sb.st_size, 0);
                poi = (unsigned char*)ZSTR_VAL(spoolbuf);