diff options
author | Yu Ning <yu.ning@intel.com> | 2015-08-07 18:47:49 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-08-07 18:47:49 +0000 |
commit | b871b1a06e24cc8ce863a2ab5a8fb4a4dcc85e1d (patch) | |
tree | 410b7b0d1e30cbab49e82ca0097d5bd4ea361bd5 | |
parent | b04cfab35d21965dce041700bf3f46403b39fb68 (diff) | |
parent | 3f83b3fdc3c3b0926e4d2f56788a9becdb92200b (diff) | |
download | device_generic_goldfish-b871b1a06e24cc8ce863a2ab5a8fb4a4dcc85e1d.tar.gz device_generic_goldfish-b871b1a06e24cc8ce863a2ab5a8fb4a4dcc85e1d.tar.bz2 device_generic_goldfish-b871b1a06e24cc8ce863a2ab5a8fb4a4dcc85e1d.zip |
am 3f83b3fd: DO NOT MERGE opengl: Fix QemuPipeStream::readFully reading beyond end of buffer
* commit '3f83b3fdc3c3b0926e4d2f56788a9becdb92200b':
DO NOT MERGE opengl: Fix QemuPipeStream::readFully reading beyond end of buffer
-rw-r--r-- | opengl/system/OpenglSystemCommon/QemuPipeStream.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/opengl/system/OpenglSystemCommon/QemuPipeStream.cpp b/opengl/system/OpenglSystemCommon/QemuPipeStream.cpp index 57983704..3a531610 100644 --- a/opengl/system/OpenglSystemCommon/QemuPipeStream.cpp +++ b/opengl/system/OpenglSystemCommon/QemuPipeStream.cpp @@ -122,12 +122,14 @@ const unsigned char *QemuPipeStream::readFully(void *buf, size_t len) //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 @@ const unsigned char *QemuPipeStream::readFully(void *buf, size_t len) 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 { |