From 8d02c14d20f95148a65e86fbb2ec97a223fa5c24 Mon Sep 17 00:00:00 2001 From: Yonit Halperin Date: Sat, 11 Aug 2012 23:41:22 +0300 Subject: [PATCH] agent: don't attempt to read from the device if it was released if vdi_port_read_buf_process failes, we detach the agent and also release the read buffer. We shouldn't try reading from the device afterwards. --- server/reds.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/reds.c b/server/reds.c index 8d6dbfb7..53f0a396 100644 --- a/server/reds.c +++ b/server/reds.c @@ -831,7 +831,9 @@ static void vdi_port_read_buf_unref(VDIReadBuf *buf) ring was empty. So we call it again so it can complete its work if necessary. Note that since we can be called from spice_char_device_wakeup this can cause recursion, but we have protection for that */ - spice_char_device_wakeup(reds->agent_state.base); + if (reds->agent_state.base) { + spice_char_device_wakeup(reds->agent_state.base); + } } }