aboutsummaryrefslogtreecommitdiff
path: root/softmmu-semi.h
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2012-08-22 13:55:56 +0200
committerAnthony Liguori <aliguori@us.ibm.com>2012-08-22 10:47:14 -0500
commit15d9e3bc6af8a56af8c61911aab8453a54795db1 (patch)
tree305e30cba2410ba2863e2268573f3bf51faa4a56 /softmmu-semi.h
parent396bef4b3846bf4e80a2bee38e9a2d8554d0f251 (diff)
downloadqemu-15d9e3bc6af8a56af8c61911aab8453a54795db1.zip
qemu-15d9e3bc6af8a56af8c61911aab8453a54795db1.tar.gz
qemu-15d9e3bc6af8a56af8c61911aab8453a54795db1.tar.bz2
softmmu-semi: fix lock_user* functions not to deref NULL upon OOM
Return NULL upon malloc failure. Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'softmmu-semi.h')
-rw-r--r--softmmu-semi.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/softmmu-semi.h b/softmmu-semi.h
index 648cb95..bcb979a 100644
--- a/softmmu-semi.h
+++ b/softmmu-semi.h
@@ -40,7 +40,7 @@ static void *softmmu_lock_user(CPUArchState *env, uint32_t addr, uint32_t len,
uint8_t *p;
/* TODO: Make this something that isn't fixed size. */
p = malloc(len);
- if (copy)
+ if (p && copy)
cpu_memory_rw_debug(env, addr, p, len, 0);
return p;
}
@@ -52,6 +52,9 @@ static char *softmmu_lock_user_string(CPUArchState *env, uint32_t addr)
uint8_t c;
/* TODO: Make this something that isn't fixed size. */
s = p = malloc(1024);
+ if (!s) {
+ return NULL;
+ }
do {
cpu_memory_rw_debug(env, addr, &c, 1, 0);
addr++;