Stop calling memcpy when `bytes_to_copy` is 0

This CL adds an if condition to check if `bytes_to_copy` is greater than 0, so that we don't do the memcpy operation if not needed, and remove the undefined behavior.

Context: crbug.com/1335423
PiperOrigin-RevId: 471457682
diff --git a/quiche/quic/core/http/quic_spdy_stream_body_manager.cc b/quiche/quic/core/http/quic_spdy_stream_body_manager.cc
index d1ba5d2..efb32c3 100644
--- a/quiche/quic/core/http/quic_spdy_stream_body_manager.cc
+++ b/quiche/quic/core/http/quic_spdy_stream_body_manager.cc
@@ -106,7 +106,13 @@
 
     const size_t bytes_to_copy =
         std::min<size_t>(body.length(), dest_remaining);
-    memcpy(dest, body.data(), bytes_to_copy);
+
+    // According to Section 7.1.4 of the C11 standard (ISO/IEC 9899:2011), null
+    // pointers should not be passed to standard library functions.
+    if (bytes_to_copy > 0) {
+      memcpy(dest, body.data(), bytes_to_copy);
+    }
+
     bytes_to_consume += bytes_to_copy;
     *total_bytes_read += bytes_to_copy;