]> granicus.if.org Git - php/commitdiff
Avoid memcpy UB in streams
authorNikita Popov <nikita.ppv@gmail.com>
Wed, 19 Jun 2019 12:04:54 +0000 (14:04 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Wed, 19 Jun 2019 13:09:00 +0000 (15:09 +0200)
main/streams/streams.c

index f1ff923dee1df29c66dbb5feda1d691916633510..08b8e6201426a6b9dee85cb8da3739514b2774d8 100644 (file)
@@ -586,7 +586,9 @@ PHPAPI void _php_stream_fill_read_buffer(php_stream *stream, size_t size)
                                                        stream->readbuf = perealloc(stream->readbuf, stream->readbuflen,
                                                                        stream->is_persistent);
                                                }
-                                               memcpy(stream->readbuf + stream->writepos, bucket->buf, bucket->buflen);
+                                               if (bucket->buflen) {
+                                                       memcpy(stream->readbuf + stream->writepos, bucket->buf, bucket->buflen);
+                                               }
                                                stream->writepos += bucket->buflen;
 
                                                php_stream_bucket_unlink(bucket);