Patchwork hw/wm8750: Fix potential buffer overflow

login
register
mail settings
Submitter Stefan Weil
Date Sept. 3, 2012, 8:56 p.m.
Message ID <1346705760-11648-1-git-send-email-sw@weilnetz.de>
Download mbox | patch
Permalink /patch/181413/
State Accepted
Headers show

Comments

Stefan Weil - Sept. 3, 2012, 8:56 p.m.
Report from smatch:

hw/wm8750.c:369 wm8750_tx(12) error: buffer overflow 's->i2c_data' 2 <= 2

It looks like the preprocessor statements were simply misplaced.

Replace also __FUNCTION__ by __func__ to please checkpatch.pl.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
---
 hw/wm8750.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Peter Maydell - Sept. 3, 2012, 10:14 p.m.
On 3 September 2012 21:56, Stefan Weil <sw@weilnetz.de> wrote:
> Report from smatch:
>
> hw/wm8750.c:369 wm8750_tx(12) error: buffer overflow 's->i2c_data' 2 <= 2
>
> It looks like the preprocessor statements were simply misplaced.
>
> Replace also __FUNCTION__ by __func__ to please checkpatch.pl.
>
> Signed-off-by: Stefan Weil <sw@weilnetz.de>

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>

-- PMM
Aurelien Jarno - Sept. 10, 2012, 1:17 p.m.
On Mon, Sep 03, 2012 at 10:56:00PM +0200, Stefan Weil wrote:
> Report from smatch:
> 
> hw/wm8750.c:369 wm8750_tx(12) error: buffer overflow 's->i2c_data' 2 <= 2
> 
> It looks like the preprocessor statements were simply misplaced.
> 
> Replace also __FUNCTION__ by __func__ to please checkpatch.pl.
> 
> Signed-off-by: Stefan Weil <sw@weilnetz.de>
> ---
>  hw/wm8750.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/wm8750.c b/hw/wm8750.c
> index 11bcec3..44f138f 100644
> --- a/hw/wm8750.c
> +++ b/hw/wm8750.c
> @@ -361,10 +361,10 @@ static int wm8750_tx(I2CSlave *i2c, uint8_t data)
>      uint16_t value;
>  
>      if (s->i2c_len >= 2) {
> -        printf("%s: long message (%i bytes)\n", __FUNCTION__, s->i2c_len);
>  #ifdef VERBOSE
> -        return 1;
> +        printf("%s: long message (%i bytes)\n", __func__, s->i2c_len);
>  #endif
> +        return 1;
>      }
>      s->i2c_data[s->i2c_len ++] = data;
>      if (s->i2c_len != 2)
> -- 
> 1.7.10
> 

Thanks, applied.

Patch

diff --git a/hw/wm8750.c b/hw/wm8750.c
index 11bcec3..44f138f 100644
--- a/hw/wm8750.c
+++ b/hw/wm8750.c
@@ -361,10 +361,10 @@  static int wm8750_tx(I2CSlave *i2c, uint8_t data)
     uint16_t value;
 
     if (s->i2c_len >= 2) {
-        printf("%s: long message (%i bytes)\n", __FUNCTION__, s->i2c_len);
 #ifdef VERBOSE
-        return 1;
+        printf("%s: long message (%i bytes)\n", __func__, s->i2c_len);
 #endif
+        return 1;
     }
     s->i2c_data[s->i2c_len ++] = data;
     if (s->i2c_len != 2)