:::::: 
:::::: Manual check reason: "low confidence static check first_new_problem: 
drivers/tty/moxa.c:767:2: warning: Using pointer to local variable 'len' that 
is out of scope. [invalidLifetime]"
:::::: 

CC: kbuild-...@lists.01.org
BCC: l...@intel.com
CC: linux-ker...@vger.kernel.org
TO: Guenter Roeck <li...@roeck-us.net>
CC: Palmer Dabbelt <palmerdabb...@google.com>

Hi Guenter,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   88084a3df1672e131ddc1b4e39eeacfd39864acf
commit: a18b14d8886614b3c7d290c4cfc33389822b0535 riscv: Disable 
STACKPROTECTOR_PER_TASK if GCC_PLUGIN_RANDSTRUCT is enabled
date:   11 months ago
:::::: branch date: 17 hours ago
:::::: commit date: 11 months ago
compiler: riscv64-linux-gcc (GCC) 11.3.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout a18b14d8886614b3c7d290c4cfc33389822b0535
        cppcheck --quiet --enable=style,performance,portability --template=gcc 
FILE

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <l...@intel.com>


cppcheck warnings: (new ones prefixed by >>)
>> drivers/tty/moxa.c:740:10: warning: Local variable 'magic' shadows outer 
>> variable [shadowVariable]
     __le32 magic; /* 0x34303430 */
            ^
   drivers/tty/moxa.c:740:10: note: Shadowed declaration
     __le32 magic; /* 0x34303430 */
            ^
   drivers/tty/moxa.c:740:10: note: Shadow variable
     __le32 magic; /* 0x34303430 */
            ^
>> drivers/tty/moxa.c:741:6: warning: Local variable 'reserved1' shadows outer 
>> variable [shadowVariable]
     u8 reserved1[2];
        ^
   drivers/tty/moxa.c:741:6: note: Shadowed declaration
     u8 reserved1[2];
        ^
   drivers/tty/moxa.c:741:6: note: Shadow variable
     u8 reserved1[2];
        ^
>> drivers/tty/moxa.c:742:6: warning: Local variable 'type' shadows outer 
>> variable [shadowVariable]
     u8 type; /* UNIX = 3 */
        ^
   drivers/tty/moxa.c:742:6: note: Shadowed declaration
     u8 type; /* UNIX = 3 */
        ^
   drivers/tty/moxa.c:742:6: note: Shadow variable
     u8 type; /* UNIX = 3 */
        ^
>> drivers/tty/moxa.c:743:6: warning: Local variable 'model' shadows outer 
>> variable [shadowVariable]
     u8 model; /* C218T=1, C320T=2, CP204=3 */
        ^
   drivers/tty/moxa.c:743:6: note: Shadowed declaration
     u8 model; /* C218T=1, C320T=2, CP204=3 */
        ^
   drivers/tty/moxa.c:743:6: note: Shadow variable
     u8 model; /* C218T=1, C320T=2, CP204=3 */
        ^
>> drivers/tty/moxa.c:744:6: warning: Local variable 'reserved2' shadows outer 
>> variable [shadowVariable]
     u8 reserved2[8];
        ^
   drivers/tty/moxa.c:744:6: note: Shadowed declaration
     u8 reserved2[8];
        ^
   drivers/tty/moxa.c:744:6: note: Shadow variable
     u8 reserved2[8];
        ^
>> drivers/tty/moxa.c:745:10: warning: Local variable 'len' shadows outer 
>> variable [shadowVariable]
     __le16 len[5];
            ^
   drivers/tty/moxa.c:736:9: note: Shadowed declaration
    size_t len;
           ^
   drivers/tty/moxa.c:745:10: note: Shadow variable
     __le16 len[5];
            ^

cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> drivers/tty/moxa.c:767:2: warning: Using pointer to local variable 'len' 
>> that is out of scope. [invalidLifetime]
    len = MOXA_FW_HDRLEN;
    ^
   drivers/tty/moxa.c:767:2: note: Array decayed to pointer here.
    len = MOXA_FW_HDRLEN;
    ^
   drivers/tty/moxa.c:745:10: note: Variable created here.
     __le16 len[5];
            ^
   drivers/tty/moxa.c:767:2: note: Using pointer to local variable 'len' that 
is out of scope.
    len = MOXA_FW_HDRLEN;
    ^
   drivers/tty/moxa.c:771:18: warning: Using pointer to local variable 'len' 
that is out of scope. [invalidLifetime]
     if (lens[a] && len + lens[a] <= fw->size &&
                    ^
   drivers/tty/moxa.c:771:18: note: Array decayed to pointer here.
     if (lens[a] && len + lens[a] <= fw->size &&
                    ^
   drivers/tty/moxa.c:745:10: note: Variable created here.
     __le16 len[5];
            ^
   drivers/tty/moxa.c:771:18: note: Using pointer to local variable 'len' that 
is out of scope.
     if (lens[a] && len + lens[a] <= fw->size &&
                    ^
   drivers/tty/moxa.c:779:3: warning: Using pointer to local variable 'len' 
that is out of scope. [invalidLifetime]
     len += lens[a];
     ^
   drivers/tty/moxa.c:779:3: note: Array decayed to pointer here.
     len += lens[a];
     ^
   drivers/tty/moxa.c:745:10: note: Variable created here.
     __le16 len[5];
            ^
   drivers/tty/moxa.c:779:3: note: Using pointer to local variable 'len' that 
is out of scope.
     len += lens[a];
     ^
   drivers/tty/moxa.c:782:6: warning: Using pointer to local variable 'len' 
that is out of scope. [invalidLifetime]
    if (len != fw->size) {
        ^
   drivers/tty/moxa.c:782:6: note: Array decayed to pointer here.
    if (len != fw->size) {
        ^
   drivers/tty/moxa.c:745:10: note: Variable created here.
     __le16 len[5];
            ^
   drivers/tty/moxa.c:782:6: note: Using pointer to local variable 'len' that 
is out of scope.
    if (len != fw->size) {
        ^
>> drivers/tty/moxa.c:736:9: warning: Unused variable: len [unusedVariable]
    size_t len;
           ^

vim +/len +767 drivers/tty/moxa.c

037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  730  
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  731  static int 
moxa_load_fw(struct moxa_board_conf *brd, const struct firmware *fw)
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  732  {
2bca76e89bc43f drivers/char/moxa.c David Howells 2008-07-08  733        const 
void *ptr = fw->data;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  734        char 
rsn[64];
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  735        u16 
lens[5];
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30 @736        size_t 
len;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  737        
unsigned int a, lenp, lencnt;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  738        int ret 
= -EINVAL;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  739        struct {
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30 @740                
__le32 magic;   /* 0x34303430 */
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30 @741                
u8 reserved1[2];
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30 @742                
u8 type;        /* UNIX = 3 */
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30 @743                
u8 model;       /* C218T=1, C320T=2, CP204=3 */
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30 @744                
u8 reserved2[8];
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30 @745                
__le16 len[5];
2bca76e89bc43f drivers/char/moxa.c David Howells 2008-07-08  746        } const 
*hdr = ptr;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  747  
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  748        
BUILD_BUG_ON(ARRAY_SIZE(hdr->len) != ARRAY_SIZE(lens));
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  749  
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  750        if 
(fw->size < MOXA_FW_HDRLEN) {
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  751                
strcpy(rsn, "too short (even header won't fit)");
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  752                
goto err;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  753        }
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  754        if 
(hdr->magic != cpu_to_le32(0x30343034)) {
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  755                
sprintf(rsn, "bad magic: %.8x", le32_to_cpu(hdr->magic));
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  756                
goto err;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  757        }
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  758        if 
(hdr->type != 3) {
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  759                
sprintf(rsn, "not for linux, type is %u", hdr->type);
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  760                
goto err;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  761        }
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  762        if 
(moxa_check_fw_model(brd, hdr->model)) {
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  763                
sprintf(rsn, "not for this card, model is %u", hdr->model);
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  764                
goto err;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  765        }
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  766  
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30 @767        len = 
MOXA_FW_HDRLEN;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  768        lencnt 
= hdr->model == 2 ? 5 : 3;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  769        for (a 
= 0; a < ARRAY_SIZE(lens); a++) {
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  770                
lens[a] = le16_to_cpu(hdr->len[a]);
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  771                
if (lens[a] && len + lens[a] <= fw->size &&
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  772                
                moxa_check_fw(&fw->data[len]))
eaa95a8da6366c drivers/char/moxa.c Jiri Slaby    2008-04-30  773                
        printk(KERN_WARNING "MOXA firmware: unexpected input "
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  774                
                "at offset %u, but going on\n", (u32)len);
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  775                
if (!lens[a] && a < lencnt) {
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  776                
        sprintf(rsn, "too few entries in fw file");
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  777                
        goto err;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  778                
}
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  779                
len += lens[a];
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  780        }
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  781  
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  782        if (len 
!= fw->size) {
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  783                
sprintf(rsn, "bad length: %u (should be %u)", (u32)fw->size,
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  784                
                (u32)len);
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  785                
goto err;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  786        }
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  787  
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  788        ptr += 
MOXA_FW_HDRLEN;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  789        lenp = 
0; /* bios */
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  790  
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  791        
strcpy(rsn, "read above");
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  792  
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  793        ret = 
moxa_load_bios(brd, ptr, lens[lenp]);
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  794        if (ret)
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  795                
goto err;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  796  
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  797        /* we 
skip the tty section (lens[1]), since we don't need it */
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  798        ptr += 
lens[lenp] + lens[lenp + 1];
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  799        lenp += 
2; /* comm */
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  800  
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  801        if 
(hdr->model == 2) {
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  802                
ret = moxa_load_320b(brd, ptr, lens[lenp]);
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  803                
if (ret)
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  804                
        goto err;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  805                
/* skip another tty */
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  806                
ptr += lens[lenp] + lens[lenp + 1];
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  807                
lenp += 2;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  808        }
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  809  
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  810        ret = 
moxa_load_code(brd, ptr, lens[lenp]);
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  811        if (ret)
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  812                
goto err;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  813  
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  814        return 
0;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  815  err:
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  816        
printk(KERN_ERR "firmware failed to load, reason: %s\n", rsn);
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  817        return 
ret;
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  818  }
037182346f0991 drivers/char/moxa.c Jiri Slaby    2008-04-30  819  

:::::: The code at line 767 was first introduced by commit
:::::: 037182346f0991683cc7320a257c3f6089432cee Char: moxa, add firmware loading

:::::: TO: Jiri Slaby <jirisl...@gmail.com>
:::::: CC: Linus Torvalds <torva...@linux-foundation.org>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to