media: sp887x: fix a warning
authorMauro Carvalho Chehab <mchehab@s-opensource.com>
Thu, 22 Mar 2018 19:13:58 +0000 (15:13 -0400)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Fri, 23 Mar 2018 10:54:32 +0000 (06:54 -0400)
drivers/media/dvb-frontends/sp887x.c:179 sp887x_initial_setup() error: memcpy() '&buf[2]' too small (30 vs 16384)

This is actually a false alarm, but reverting the check order
makes not only for humans to review the code, but also cleans
the warning.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/dvb-frontends/sp887x.c

index 572a297811fe0ca38c44f0209145d67578ba7621..f39d566d7d1dfb4733dfa780c97ab6e4a0db06df 100644 (file)
@@ -136,7 +136,7 @@ static void sp887x_setup_agc (struct sp887x_state* state)
 static int sp887x_initial_setup (struct dvb_frontend* fe, const struct firmware *fw)
 {
        struct sp887x_state* state = fe->demodulator_priv;
-       u8 buf [BLOCKSIZE+2];
+       u8 buf [BLOCKSIZE + 2];
        int i;
        int fw_size = fw->size;
        const unsigned char *mem = fw->data;
@@ -144,7 +144,7 @@ static int sp887x_initial_setup (struct dvb_frontend* fe, const struct firmware
        dprintk("%s\n", __func__);
 
        /* ignore the first 10 bytes, then we expect 0x4000 bytes of firmware */
-       if (fw_size < FW_SIZE+10)
+       if (fw_size < FW_SIZE + 10)
                return -ENODEV;
 
        mem = fw->data + 10;
@@ -167,7 +167,7 @@ static int sp887x_initial_setup (struct dvb_frontend* fe, const struct firmware
                int c = BLOCKSIZE;
                int err;
 
-               if (i+c > FW_SIZE)
+               if (c > FW_SIZE - i)
                        c = FW_SIZE - i;
 
                /* bit 0x8000 in address is set to enable 13bit mode */