]> granicus.if.org Git - php/commitdiff
Return FALSE if error_log fails to write all bytes
authorAdam Saponara <as@php.net>
Thu, 9 Mar 2017 19:27:01 +0000 (14:27 -0500)
committerNikita Popov <nikita.ppv@gmail.com>
Thu, 16 Mar 2017 11:56:36 +0000 (12:56 +0100)
ext/standard/basic_functions.c

index 2f39f51edecea89c425384a74a2c53c720bb2290..37d24d49bc734a3c923ebdf1196adef41c4d5fae 100644 (file)
@@ -4682,6 +4682,7 @@ PHPAPI int _php_error_log(int opt_err, char *message, char *opt, char *headers)
 PHPAPI int _php_error_log_ex(int opt_err, char *message, size_t message_len, char *opt, char *headers) /* {{{ */
 {
        php_stream *stream = NULL;
+       size_t nbytes;
 
        switch (opt_err)
        {
@@ -4701,8 +4702,11 @@ PHPAPI int _php_error_log_ex(int opt_err, char *message, size_t message_len, cha
                        if (!stream) {
                                return FAILURE;
                        }
-                       php_stream_write(stream, message, message_len);
+                       nbytes = php_stream_write(stream, message, message_len);
                        php_stream_close(stream);
+                       if (nbytes != message_len) {
+                               return FAILURE;
+                       }
                        break;
 
                case 4: /* send to SAPI */