cppcheck
denji opened this issue · 0 comments
denji commented
$ sh ./bootstrap; autoreconf -fi; ./configure --disable-static
$ make clean
$ bear make
$ cat compile_commands.json
$ cppcheck --project=compile_commands.json --enable=warning,performance,portability -f -j4 libIP2Location 2> err.txt
$ cat err.txt
libIP2Location/IP2Loc_DBInterface.c:326:19: error: Memory leak: str [memleak]
if (temp == 0) { return ""; };
^
IP2Location-C-Library/test/test-IP2Location.c:40:9: warning: fscanf() without field width limits can crash with huge input data. [invalidscanf]
while (fscanf(f, "%s", ipAddress) != EOF) {
^
IP2Location-C-Library/test/test-IP2Location.c:41:7: warning: fscanf() without field width limits can crash with huge input data. [invalidscanf]
if (fscanf(f, "%s", expectedCountry) == EOF) {
^
IP2Location-C-Library/test/test-IP2Location.c:91:9: warning: fscanf() without field width limits can crash with huge input data. [invalidscanf]
while (fscanf(f, "%s", ipAddress) != EOF) {
^
IP2Location-C-Library/test/test-IP2Location.c:92:7: warning: fscanf() without field width limits can crash with huge input data. [invalidscanf]
if (fscanf(f, "%s", expectedCountry) == EOF) {
^
libIP2Location/IP2Location.c:846:27: error: The address of local variable 'ip' is accessed at non-zero index. [objectIndex]
a = (uint8_t)(ptr[3]);
^
libIP2Location/IP2Location.c:841:32: note: Address of variable taken here.
uint8_t *ptr = (uint8_t *) &ip;
^
libIP2Location/IP2Location.c:846:27: note: The address of local variable 'ip' is accessed at non-zero index.
a = (uint8_t)(ptr[3]);
^
libIP2Location/IP2Location.c:847:27: error: The address of local variable 'ip' is accessed at non-zero index. [objectIndex]
a += (uint8_t)(ptr[2]) * 256;
^
libIP2Location/IP2Location.c:841:32: note: Address of variable taken here.
uint8_t *ptr = (uint8_t *) &ip;
^
libIP2Location/IP2Location.c:847:27: note: The address of local variable 'ip' is accessed at non-zero index.
a += (uint8_t)(ptr[2]) * 256;
^
libIP2Location/IP2Location.c:848:27: error: The address of local variable 'ip' is accessed at non-zero index. [objectIndex]
a += (uint8_t)(ptr[1]) * 256 * 256;
^
libIP2Location/IP2Location.c:841:32: note: Address of variable taken here.
uint8_t *ptr = (uint8_t *) &ip;
^
libIP2Location/IP2Location.c:848:27: note: The address of local variable 'ip' is accessed at non-zero index.
a += (uint8_t)(ptr[1]) * 256 * 256;
^
IP2Location-C-Library/libIP2Location/IP2Loc_DBInterface.c:326:19: error: Memory leak: str [memleak]
if (temp == 0) { return ""; };
^
IP2Location-C-Library/libIP2Location/IP2Location.c:846:27: error: The address of local variable 'ip' is accessed at non-zero index. [objectIndex]
a = (uint8_t)(ptr[3]);
^
IP2Location-C-Library/libIP2Location/IP2Location.c:841:32: note: Address of variable taken here.
uint8_t *ptr = (uint8_t *) &ip;
^
IP2Location-C-Library/libIP2Location/IP2Location.c:846:27: note: The address of local variable 'ip' is accessed at non-zero index.
a = (uint8_t)(ptr[3]);
^
IP2Location-C-Library/libIP2Location/IP2Location.c:847:27: error: The address of local variable 'ip' is accessed at non-zero index. [objectIndex]
a += (uint8_t)(ptr[2]) * 256;
^
IP2Location-C-Library/libIP2Location/IP2Location.c:841:32: note: Address of variable taken here.
uint8_t *ptr = (uint8_t *) &ip;
^
IP2Location-C-Library/libIP2Location/IP2Location.c:847:27: note: The address of local variable 'ip' is accessed at non-zero index.
a += (uint8_t)(ptr[2]) * 256;
^
IP2Location-C-Library/libIP2Location/IP2Location.c:848:27: error: The address of local variable 'ip' is accessed at non-zero index. [objectIndex]
a += (uint8_t)(ptr[1]) * 256 * 256;
^
IP2Location-C-Library/libIP2Location/IP2Location.c:841:32: note: Address of variable taken here.
uint8_t *ptr = (uint8_t *) &ip;
^
IP2Location-C-Library/libIP2Location/IP2Location.c:848:27: note: The address of local variable 'ip' is accessed at non-zero index.
a += (uint8_t)(ptr[1]) * 256 * 256;
^
^