am bad193d9: am 91ac4618: am 0e94cee9: DO NOT MERGE opengl: Fix QemuPipeStream::readFully reading beyond end of buffer
* commit 'bad193d96a7fd8ffea27e5e62c7a77c508fabf34': DO NOT MERGE opengl: Fix QemuPipeStream::readFully reading beyond end of buffer
This commit is contained in:
committed by
Android Git Automerger
commit
9cb9a14c5a
@@ -122,12 +122,14 @@ const unsigned char *QemuPipeStream::readFully(void *buf, size_t len)
|
|||||||
//DBG(">> QemuPipeStream::readFully %d\n", len);
|
//DBG(">> QemuPipeStream::readFully %d\n", len);
|
||||||
if (!valid()) return NULL;
|
if (!valid()) return NULL;
|
||||||
if (!buf) {
|
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
|
return NULL; // do not allow NULL buf in that implementation
|
||||||
}
|
}
|
||||||
size_t res = len;
|
size_t res = len;
|
||||||
while (res > 0) {
|
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) {
|
if (stat == 0) {
|
||||||
// client shutdown;
|
// client shutdown;
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -135,8 +137,8 @@ const unsigned char *QemuPipeStream::readFully(void *buf, size_t len)
|
|||||||
if (errno == EINTR) {
|
if (errno == EINTR) {
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
ERR("QemuPipeStream::readFully failed (buf %p): %s\n",
|
ERR("QemuPipeStream::readFully failed (buf %p, len %zu"
|
||||||
buf, strerror(errno));
|
", res %zu): %s\n", buf, len, res, strerror(errno));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user