diff mbox series

[PULL,8/9] usb: add device checks before redirector calls to usb_ep_get()

Message ID 20190220111346.13669-9-kraxel@redhat.com
State New
Headers show
Series [PULL,1/9] usb: rearrange usb_ep_get() | expand

Commit Message

Gerd Hoffmann Feb. 20, 2019, 11:13 a.m. UTC
From: Liam Merwick <liam.merwick@oracle.com>

Add an assert and an explicit check before the two callers to
usb_ep_get() in the USB redirector code to ensure the device
passed in is not NULL.

Signed-off-by: Liam Merwick <liam.merwick@oracle.com>
Message-id: 1549460216-25808-9-git-send-email-liam.merwick@oracle.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 hw/usb/redirect.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Yuval Shaia Feb. 20, 2019, 11:24 a.m. UTC | #1
On Wed, Feb 20, 2019 at 12:13:45PM +0100, Gerd Hoffmann wrote:
> From: Liam Merwick <liam.merwick@oracle.com>
> 
> Add an assert and an explicit check before the two callers to
> usb_ep_get() in the USB redirector code to ensure the device
> passed in is not NULL.
> 
> Signed-off-by: Liam Merwick <liam.merwick@oracle.com>
> Message-id: 1549460216-25808-9-git-send-email-liam.merwick@oracle.com
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
>  hw/usb/redirect.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c
> index 18a42d1938..7cb6b120d4 100644
> --- a/hw/usb/redirect.c
> +++ b/hw/usb/redirect.c
> @@ -1728,6 +1728,7 @@ static void usbredir_ep_info(void *priv,
>      USBRedirDevice *dev = priv;
>      int i;
>  
> +    assert(dev != NULL);

Suggesting:
    assert(dev)

>      for (i = 0; i < MAX_ENDPOINTS; i++) {
>          dev->endpoint[i].type = ep_info->type[i];
>          dev->endpoint[i].interval = ep_info->interval[i];
> @@ -2125,7 +2126,7 @@ static int usbredir_post_load(void *priv, int version_id)
>  {
>      USBRedirDevice *dev = priv;
>  
> -    if (dev->parser == NULL) {
> +    if (dev == NULL || dev->parser == NULL) {

Suggesting
    if (!dev || !dev->parser)

>          return 0;
>      }
>  
> -- 
> 2.9.3
> 
>
Liam Merwick Feb. 22, 2019, 12:17 a.m. UTC | #2
On 20/02/2019 11:24, Yuval Shaia wrote:
> On Wed, Feb 20, 2019 at 12:13:45PM +0100, Gerd Hoffmann wrote:
>> From: Liam Merwick <liam.merwick@oracle.com>
>>
>> Add an assert and an explicit check before the two callers to
>> usb_ep_get() in the USB redirector code to ensure the device
>> passed in is not NULL.
>>
>> Signed-off-by: Liam Merwick <liam.merwick@oracle.com>
>> Message-id: 1549460216-25808-9-git-send-email-liam.merwick@oracle.com
>> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
>> ---
>>   hw/usb/redirect.c | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c
>> index 18a42d1938..7cb6b120d4 100644
>> --- a/hw/usb/redirect.c
>> +++ b/hw/usb/redirect.c
>> @@ -1728,6 +1728,7 @@ static void usbredir_ep_info(void *priv,
>>       USBRedirDevice *dev = priv;
>>       int i;
>>   
>> +    assert(dev != NULL);
> 
> Suggesting:
>      assert(dev)
> 
>>       for (i = 0; i < MAX_ENDPOINTS; i++) {
>>           dev->endpoint[i].type = ep_info->type[i];
>>           dev->endpoint[i].interval = ep_info->interval[i];
>> @@ -2125,7 +2126,7 @@ static int usbredir_post_load(void *priv, int version_id)
>>   {
>>       USBRedirDevice *dev = priv;
>>   
>> -    if (dev->parser == NULL) {
>> +    if (dev == NULL || dev->parser == NULL) {
> 
> Suggesting
>      if (!dev || !dev->parser)
> 

The rest of the file tests for '== NULL' so I used that for consistency 
(but in any case, my personal preferences is to just use that boolean 
style check with boolean variables).  As it happens, the commits have 
already been pulled.

Regards,
Liam
diff mbox series

Patch

diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c
index 18a42d1938..7cb6b120d4 100644
--- a/hw/usb/redirect.c
+++ b/hw/usb/redirect.c
@@ -1728,6 +1728,7 @@  static void usbredir_ep_info(void *priv,
     USBRedirDevice *dev = priv;
     int i;
 
+    assert(dev != NULL);
     for (i = 0; i < MAX_ENDPOINTS; i++) {
         dev->endpoint[i].type = ep_info->type[i];
         dev->endpoint[i].interval = ep_info->interval[i];
@@ -2125,7 +2126,7 @@  static int usbredir_post_load(void *priv, int version_id)
 {
     USBRedirDevice *dev = priv;
 
-    if (dev->parser == NULL) {
+    if (dev == NULL || dev->parser == NULL) {
         return 0;
     }