From: zhanghailiang Date: Tue, 5 Apr 2016 03:43:55 +0000 (+0800) Subject: filter-buffer: fix segfault when starting qemu with status=off property X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=e0a039e50d481dce6b4ee45a29002538a258cd89;p=qmiga%2Fqemu.git filter-buffer: fix segfault when starting qemu with status=off property After commit 338d3f, we support 'status' property for filter object. The segfault can be triggered by starting qemu with 'status=off' property for filter, when the s->incoming_queue is NULL, we reference it directly in qemu_net_queue_flush() which was called in status_changed() callback function. We shouldn't trigger status_changed() before the filter was initialized, We can check the value of 'nf->netdev' to confirm if the filter is initialized or not, so let's check its value before calling status_changed(). Signed-off-by: zhanghailiang Signed-off-by: Jason Wang --- diff --git a/net/filter.c b/net/filter.c index 1c4fc5a2c7..8ac79f3b7b 100644 --- a/net/filter.c +++ b/net/filter.c @@ -164,7 +164,7 @@ static void netfilter_set_status(Object *obj, const char *str, Error **errp) return; } nf->on = !nf->on; - if (nfc->status_changed) { + if (nf->netdev && nfc->status_changed) { nfc->status_changed(nf, errp); } }