diff options
author | Jesse Hall <jessehall@google.com> | 2012-01-09 09:46:32 -0800 |
---|---|---|
committer | Jesse Hall <jessehall@google.com> | 2012-01-09 09:46:32 -0800 |
commit | 04e9fbc09d517455b23903c9d5e7941a9ed59b01 (patch) | |
tree | d2ea96351ec2eb7feb1bf0f5a001c6c3e9680c7f | |
parent | 4382d024a01df4888114e2e72605617371763a0d (diff) | |
download | external_qemu-04e9fbc09d517455b23903c9d5e7941a9ed59b01.zip external_qemu-04e9fbc09d517455b23903c9d5e7941a9ed59b01.tar.gz external_qemu-04e9fbc09d517455b23903c9d5e7941a9ed59b01.tar.bz2 |
Fix emulator crash restoring pipes from snapshot
The emulator crashes when loading a goldfish pipe from snapshot if it
was still in PipeConnection state when saved, since there is no
service associated with the pipe. Check for service existence before
dereferencing the service pointer.
Change-Id: I9093bdf403fd3532e9fb6584b98994d9d4dc686c
-rw-r--r-- | hw/goldfish_pipe.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/goldfish_pipe.c b/hw/goldfish_pipe.c index 3c076f1..97daefb 100644 --- a/hw/goldfish_pipe.c +++ b/hw/goldfish_pipe.c @@ -284,7 +284,7 @@ pipe_load( PipeDevice* dev, QEMUFile* file ) } if (pipe->funcs->load) { - pipe->opaque = pipe->funcs->load(pipe, service->opaque, pipe->args, file); + pipe->opaque = pipe->funcs->load(pipe, service ? service->opaque : NULL, pipe->args, file); if (pipe->opaque == NULL) { AFREE(pipe); return NULL; |