Skip to content

False positive "Comparison result is always the same" because of incorrect sizeof evaluation #17343

Open
@andyhhp

Description

@andyhhp

Description of the false positive

CodeQL complains "Comparison is always true because i <= 1. "

However, it is really a loop over 4 elements.

I suspect the problem is that

struct foo
{
   ...
    unsigned long (*fnptr_array[4])(void);
    ...
};

describes an array of 4 function pointers, but that CodeQL isn't evaluating sizeof correctly on the type.

Code samples or links to source code

https://github.com/andyhhp/xtf/blob/f503efe8e5cf8858ec0704f1aaa82d0bf50891a5/tests/swint-emulation/main.c#L162-L162

but I've done a simpler example in https://godbolt.org/z/9fGr51r68 if that helps

URL to the alert on GitHub code scanning (optional)

https://github.com/andyhhp/xtf/security/code-scanning/55

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions