am 91ac4618: am 0e94cee9: DO NOT MERGE opengl: Fix QemuPipeStream::readFully reading beyond end of buffer

* commit '91ac4618597670a2580b0de3bb417c3c43ed5089':
  DO NOT MERGE opengl: Fix QemuPipeStream::readFully reading beyond end of buffer
diff --git a/tools/emulator/opengl/system/OpenglSystemCommon/QemuPipeStream.cpp b/tools/emulator/opengl/system/OpenglSystemCommon/QemuPipeStream.cpp
index 5798370..3a53161 100644
--- a/tools/emulator/opengl/system/OpenglSystemCommon/QemuPipeStream.cpp
+++ b/tools/emulator/opengl/system/OpenglSystemCommon/QemuPipeStream.cpp
@@ -122,12 +122,14 @@
     //DBG(">> QemuPipeStream::readFully %d\n", len);
     if (!valid()) return NULL;
     if (!buf) {
-        if (len>0) ERR("QemuPipeStream::readFully failed, buf=NULL, len %d", len);
+        if (len > 0) {
+            ERR("QemuPipeStream::readFully failed, buf=NULL, len %zu", len);
+        }
         return NULL;  // do not allow NULL buf in that implementation
     }
     size_t res = len;
     while (res > 0) {
-        ssize_t stat = ::read(m_sock, (char *)(buf) + len - res, len);
+        ssize_t stat = ::read(m_sock, (char *)(buf) + len - res, res);
         if (stat == 0) {
             // client shutdown;
             return NULL;
@@ -135,8 +137,8 @@
             if (errno == EINTR) {
                 continue;
             } else {
-                ERR("QemuPipeStream::readFully failed (buf %p): %s\n",
-                    buf, strerror(errno));
+                ERR("QemuPipeStream::readFully failed (buf %p, len %zu"
+                    ", res %zu): %s\n", buf, len, res, strerror(errno));
                 return NULL;
             }
         } else {