36 lines
1.2 KiB
Diff
36 lines
1.2 KiB
Diff
|
From 80eecda8e5d09c442c24307f340840a5b70ea3b9 Mon Sep 17 00:00:00 2001
|
||
|
From: Prasad J Pandit <pjp@fedoraproject.org>
|
||
|
Date: Thu, 11 Feb 2016 16:31:20 +0530
|
||
|
Subject: [PATCH] usb: check USB configuration descriptor object
|
||
|
|
||
|
When processing remote NDIS control message packets, the USB Net
|
||
|
device emulator checks to see if the USB configuration descriptor
|
||
|
object is of RNDIS type(2). But it does not check if it is null,
|
||
|
which leads to a null dereference error. Add check to avoid it.
|
||
|
|
||
|
Reported-by: Qinghao Tang <luodalongde@gmail.com>
|
||
|
Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
|
||
|
Message-id: 1455188480-14688-1-git-send-email-ppandit@redhat.com
|
||
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||
|
---
|
||
|
hw/usb/dev-network.c | 3 ++-
|
||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/hw/usb/dev-network.c b/hw/usb/dev-network.c
|
||
|
index 985a629..5dc4538 100644
|
||
|
--- a/hw/usb/dev-network.c
|
||
|
+++ b/hw/usb/dev-network.c
|
||
|
@@ -654,7 +654,8 @@ typedef struct USBNetState {
|
||
|
|
||
|
static int is_rndis(USBNetState *s)
|
||
|
{
|
||
|
- return s->dev.config->bConfigurationValue == DEV_RNDIS_CONFIG_VALUE;
|
||
|
+ return s->dev.config ?
|
||
|
+ s->dev.config->bConfigurationValue == DEV_RNDIS_CONFIG_VALUE : 0;
|
||
|
}
|
||
|
|
||
|
static int ndis_query(USBNetState *s, uint32_t oid,
|
||
|
--
|
||
|
2.7.4
|
||
|
|