Commit Graph

404 Commits

Author SHA1 Message Date
PKEuS 42a75692d4 Improved nullpointer check:
- More accurate checking for dereferences and non-dereferences
- improved checking for nullpointer dereferences after return statement
- Supports pointer dereferences by std::string
- Code optimization/refactorization
2012-01-25 15:16:22 +01:00
Reijo Tomperi 8cae17fda8 Update year to 2012 2012-01-01 01:05:37 +02:00
Daniel Marjamäki 385afffb14 Null pointers: show inconclusive errors if functions are called. Assume they won't assign the pointer. Ticket: #3443 2011-12-26 07:13:10 +01:00
Daniel Marjamäki b742c03b65 Fixed #3443 (false positives: possible null pointer dereference (calling unknown function)) 2011-12-25 17:01:45 +01:00
Daniel Marjamäki 2bb5de4c89 Fixed #3425 (False positive: Null pointer dereference (pointer is checked in macro)) 2011-12-18 13:33:23 +01:00
Daniel Marjamäki e008a0508b Null pointers: Fixed false positive when sizeof without parentheses are used 2011-12-17 12:44:11 +01:00
Daniel Marjamäki e2dd085b60 Fixed #3394 (False positive: possible null pointer dereference) 2011-12-08 19:30:14 +01:00
Daniel Marjamäki c90558f730 Fixed #3358 (False null pointer dereference positive with ternary ?: operator) 2011-12-03 13:10:07 +01:00
Daniel Marjamäki 9a84c5845a Fixed #3373 (False posititive: incorrect %* handling in sscanf) 2011-12-02 17:09:32 +01:00
Daniel Marjamäki 6763e596b9 Fixed #3345 (false positive: possible null pointer dereference (guarded by &&)) 2011-12-02 06:11:55 +01:00
PKEuS ee3e10ea97 Fixed #3364 (Crash in printf parsing) 2011-11-30 20:23:29 +01:00
PKEuS be0acad11f Improvements to Nullpointer dereference on function call check:
printf format string parser improved (similar to my recent patch
on the argument counter), frexp/modf supported (#1572), Code
cleanup
2011-11-28 22:32:07 +02:00
PKEuS 6b1594244e code cleanups and refactorings 2011-11-26 21:15:16 +01:00
Richard Quirk d76657fec8 Fix false positives for null pointer on exit 2011-11-23 21:27:15 +01:00
Richard Quirk 527236b321 Fix false positives for delete of known nulls 2011-11-13 22:38:34 +01:00
Daniel Marjamäki 8bbd535267 Fixed #3290 (False positive: Null pointer dereference (typeid)) 2011-11-11 09:58:17 +01:00
Reijo Tomperi 7b7e072b88 Fix #3278 (FP: Possible null pointer dereference with for loop)
http://sourceforge.net/apps/trac/cppcheck/ticket/3278
Bail out if token "for" is encountered.
2011-11-07 22:10:21 +02:00
Benjamin Goose 54c445ca20 Add tests for various bugs.
False positive: uninitialized variable (ticket #3287).
False positive: null pointer dereference in typeid (ticket #3290).
2011-11-04 12:27:32 +01:00
Daniel Marjamäki 63937f592e Fixed #3228 (false positive: possible null pointer dereference) 2011-10-30 17:59:38 +01:00
Daniel Marjamäki d75ef01d2b Null pointer: Added inconclusive error message when calling member function of NULL object. 2011-10-29 15:48:54 +02:00
Reijo Tomperi 5e0e2c4782 Fix #3256 (Null pointer dereference not detected)
http://sourceforge.net/apps/trac/cppcheck/ticket/3256
It is now detected if --inconclusive command line argument is given (the argument is unofficial currently)
2011-10-29 11:35:31 +03:00
Thomas Jarosch e3c67fed12 Run astyle 2011-10-28 22:43:02 +02:00
Ettl Martin 4a14672d0b added unittest for ticket #1780 2011-10-27 23:54:03 +02:00
Reijo Tomperi 36ef8e771f Improve null pointer dereference test coverage 2011-10-24 00:36:57 +03:00
Marek Zmysłowski b332ea8222 Fixed #3204 (Refactor standards support in Settings) 2011-10-22 09:45:48 +02:00
Daniel Marjamäki 3d18fdfa3f Fixed #3220 (False positive: possible null pointer dereference: 'SwDoc *pDoc = NULL; pDoc->do_something();') 2011-10-18 19:34:14 +02:00
PKEuS f8074b71d2 Fixed #2470 (False negative: Possible null pointer dereference (C++0x keyword 'nullptr')) 2011-10-16 12:54:58 +02:00
PKEuS 71a1d98693 Fixed ##3211 (Crash in gitHEAD when arglist count is smaller than format string) 2011-10-16 07:06:18 +02:00
Daniel Marjamäki 6f8e42a5af changed the astyle formatting flags 2011-10-13 20:53:06 +02:00
PKEuS 91d7621994 Fixed #3180 (New check: Detect nullpointers given to printf via variable argument list) 2011-10-12 22:11:27 +02:00
Daniel Marjamäki 175503ef94 Null pointer: improved inconclusive checking in CheckNullPointer::nullPointerAfterLoop 2011-10-09 15:09:02 +02:00
Daniel Marjamäki 0b09732881 Null pointers: fixed false negatives when there are '(p && ..' 2011-10-08 12:58:10 +02:00
Daniel Marjamäki e2ec5a127f Fixed #3128 (False positive: null pointer dereference check does not handle complex boolean logic properly) 2011-10-07 21:08:21 +02:00
Daniel Marjamäki 480c403511 Fixed #3125 (FP: Possible null pointer dereference in conditional operator) 2011-10-02 19:27:18 +02:00
Daniel Marjamäki b2d0e48a31 Fixed #3126 (false positive: Null pointer dereference) 2011-10-02 18:24:45 +02:00
Daniel Marjamäki d098ed6031 Fixed #3065 (False positive: possible null pointer dereference: vi) 2011-09-03 19:43:27 +02:00
Daniel Marjamäki 27b29e5b8e Fixed #3023 (False positive: no possible null pointer dereference here: 'WARN_ON(!abc || abc->x == 0);') 2011-08-20 09:47:55 +02:00
Daniel Marjamäki a6a966e28e Null pointer: Fixed false positive when condition contains assignment 'if (p==NULL && (p=malloc(10))!=NULL) *p=0;' 2011-08-07 17:06:25 +02:00
Kimmo Varis cfcfa3f000 Use "enabled" list for the style checking.
Settings-class currently enables style checking via dedicated
boolean attribute. All other CLI's enable-options are handled
through the enable-list. This commit moves style-check enabling
to use the enable-list.

Main advantage is the consistency how options are handled/stored
in the Settings class. Which also unifies using them for the other
code. You need to enable certain type of checks? Use the
addEnabled()-method. You want to check if certain type of checks
are enabled? Use the isEnabled()-method.
2011-08-07 10:28:52 +03:00
Daniel Marjamäki 493cfa5df2 Null pointer: Added todo test case to better handle dereference in condition 2011-08-02 17:20:13 +02:00
Daniel Marjamäki 08f27564fa Null pointer: reduce false negatives in pointerDerefAndCheck 2011-08-02 17:04:07 +02:00
Daniel Marjamäki 825dce5c4e Fixed #2954 (False negative: Null pointer dereference not detected '*p=4; if (p) { }') 2011-08-02 11:20:09 +02:00
Daniel Marjamäki 0c2f2e1c38 Null pointers: Fixed false negative when struct is dereferenced in condition 2011-08-01 21:57:23 +02:00
Daniel Marjamäki a6c7ae8d51 Fixed #2789 (null pointer: problems not detected when pointer is assigned and checked if it's null in a if statement) 2011-08-01 07:51:32 +02:00
Daniel Marjamäki 1640f3d1ca Null pointer: fix false negatives when unknown function is called and pointer is local/argument 2011-07-31 17:32:25 +02:00
Daniel Marjamäki cc89687e8c Null pointer: better handling when calling standard functions with possible null pointer 2011-07-31 17:19:23 +02:00
Daniel Marjamäki dd6982a616 Fixed #2935 (possible null pointer dereference when using strcpy etc) 2011-07-31 14:07:35 +02:00
Daniel Marjamäki 7f193fb7a1 Fixed #2788 (null pointer: dereference and then check 'if (abc->a == 3) { } if (!abc) ..') 2011-07-30 19:51:06 +02:00
Daniel Marjamäki a6740200cf Null pointer: Added check for 'if (fred); return fred->a;' 2011-07-25 21:58:00 +02:00
Daniel Marjamäki 6e14da7eba Fixed #2812 (false negative: null pointer dereference when returning struct member) 2011-07-25 21:40:32 +02:00
Daniel Marjamäki 2c6e4c423a Fixed #2681 (False negative: Possible null pointer dereference) 2011-07-25 15:45:00 +02:00
Reijo Tomperi 382520ee9f Fix #2840, False positive: Null pointer dereference
http://sourceforge.net/apps/trac/cppcheck/ticket/2840
2011-06-26 22:46:33 +03:00
Daniel Marjamäki e4f6d4c987 Fixed #2808 (False positive 'Possible null pointer dereference') 2011-06-21 18:45:30 +02:00
Robert Reif e9bc72b4f2 todo tests for #2812 (false negative: null pointer dereference when returning struct member) 2011-06-03 22:16:08 -04:00
Robert Reif a99aded1a4 add support for null pointer checking struct pointers 2011-05-27 23:30:19 -04:00
Martin Exner bc3507118d Fixed #2696 (False positive nullpointer) 2011-04-03 21:06:42 +02:00
Daniel Marjamäki 0a2f11c2cd Fixed #2695 (False positive: null pointer dereference and ternary operator (?:)) 2011-03-29 18:45:32 +02:00
Daniel Marjamäki d539cf59ca Null pointer: Added TODO test case for ticket #2681 2011-03-28 19:27:07 +02:00
Daniel Marjamäki a1dba61cee Null pointer: prefer longer error message that says 'otherwise condition at line X is redundant' 2011-03-28 18:48:27 +02:00
Daniel Marjamäki 7426bd3daf Null pointer: prefer longer error message that says 'otherwise condition at line X is redundant' 2011-03-28 18:44:25 +02:00
Daniel Marjamäki 4a7b60942b Fixed #2691 (False positive: struct dereference and check (switch-break)) 2011-03-28 17:28:21 +02:00
Daniel Marjamäki 57056bcf61 Fixed #2689 (False positive: Possible null pointer dereference) 2011-03-27 21:29:49 +02:00
Daniel Marjamäki c87037c29d Fixed #2674 (False positive: possible null pointer dereference (check if pointer is null in one function, dereference it in another function)) 2011-03-27 11:04:58 +02:00
Robert Reif 7e3e5d628d better fix for #2672 (False positive: function can be const, nested classes declared in one line) 2011-03-23 20:19:32 -04:00
Daniel Marjamäki f26bc6a75c Fixed #2621 (Segmentation fault for GCC statement expression) 2011-03-13 10:34:54 +01:00
Daniel Marjamäki f3728c0b76 Fixed #2647 (False positive: Possible null pointer dereference (member function call)) 2011-03-12 20:57:19 +01:00
Robert Reif 6a2848e50f fix another false negative introduced by fix for #2641 2011-03-12 12:27:19 -05:00
Robert Reif 384bd96766 fix false negative introduced by fix for #2641 2011-03-12 11:42:58 -05:00
Daniel Marjamäki 0a28b7309f Fixed #2641 (False positive: Possible null pointer dereference (global pointer, function call)) 2011-03-12 15:02:06 +01:00
Daniel Marjamäki 7f67438d99 Null pointer: Added TODO test case. Ticket: #2379 2011-02-20 19:45:34 +01:00
Daniel Marjamäki 7894d86132 Null pointers: Fixed false negative for such code: 'if (p && *p) {} else { *p=0; }'. Ticket: #2379 2011-02-20 14:38:49 +01:00
Daniel Marjamäki 5f0206725b Null pointers: Fixed false negative for such code 'if (p && *p==0) {} *p = 0;'. Ticket: #2379 2011-02-19 21:28:18 +01:00
Daniel Marjamäki 29d05cf5f2 Null pointers: Fixed false negative for such code: 'abc->a = 0; if (abc && ..'. Ticket: #2379 2011-02-19 21:10:31 +01:00
Daniel Marjamäki e7ef1b3627 Null pointer: fixed false negative when dereferencing struct and then checking if it's null. Ticket: #2379 2011-02-19 21:01:38 +01:00
Daniel Marjamäki caca6e94e6 Fixed #2231 (uninitialized variable: undetected when initialization in for loop) 2011-02-19 20:19:46 +01:00
Daniel Marjamäki 9a760b9654 Fixed #2582 (segmentation fault of cppcheck ( if() )) 2011-02-18 20:05:44 +01:00
Daniel Marjamäki 26f017e9c6 scripts: added tabs.pl - in my opinion it is bad to use tabs inside string constants. spaces or \t should be used instead. 2011-02-05 12:53:28 +01:00
Daniel Marjamäki 202c8eb4a0 Fixed #2525 (False positive 'Possible null pointer dereference') 2011-01-31 17:30:27 +01:00
Pete Johns 098f0bf3e6 Fixed #2526 (Make TODO_ASSERT_EQUALS take three arguments (value, to_be, as_is)?...
Removed replaced EXPECTED with...

WANTED (to-be):     The future expected value.
CURRENT (as-is):    Documenting how cppcheck behaves now.

This removes the need for an ASSERT_EQUALS but enforces the check for every TODO_ASSERT_EQUALS.
2011-01-30 23:20:11 +11:00
Daniel Marjamäki 86e6822264 Fixed #2493 (false positive: (error) Possible null pointer dereference: pExpr) 2011-01-23 08:38:09 +01:00
Daniel Marjamäki b5020468f6 Fixed #2467 (false positive: possible nullptr dereference) 2011-01-17 19:23:00 +01:00
Daniel Marjamäki 6edf35ebf5 Fixed #2463 (false positive: possible nullpointer dereference) 2011-01-15 12:09:36 +01:00
Daniel Marjamäki 9658e2299d Fixed #2443 (Possible null pointer dereference: xxx - otherwise it is redundant to check if xxx is null at line) 2011-01-10 19:57:26 +01:00
Reijo Tomperi 226b605774 Change year 2010 -> 2011 in license texts. 2011-01-09 21:33:36 +02:00
Daniel Marjamäki 2848abbf36 Fixed #1219 (improve check: null pointer not detected 'if (p) return; *p = 0;') 2011-01-09 20:16:16 +01:00
Daniel Marjamäki 68beffca04 Fixed #2437 (false positive: possible null pointer dereference: tok2) 2011-01-08 17:16:52 +01:00
Daniel Marjamäki d1854e330b Fixed #2413 (fflush() with NULL argument is valid.) 2011-01-06 08:12:34 +01:00
Daniel Marjamäki c74b2e3cbf Fixed #2411 (possible null pointer dereference (aborting via function pointer not detected)) 2011-01-05 21:48:26 +01:00
Daniel Marjamäki 5f3d2a7e35 Fixed #2090 (False negative: null pointer dereference 's=0; strcpy(s,p);') 2010-12-26 19:29:58 +01:00
Daniel Marjamäki 243a524909 Fixed #2350 (false positive: possible null pointer dereference) 2010-12-26 13:38:16 +01:00
Daniel Marjamäki 696550abd3 Fixed #2299 (false positive: possible nullpointer dereference) 2010-12-17 21:09:12 +01:00
Daniel Marjamäki 0cebcc8fa9 Fixed #2300 (false positive: possible nullpointer dereference) 2010-12-16 21:41:50 +01:00
Daniel Marjamäki ee083cd7a0 Fixed #2284 (False positive: Possible null pointer reference) 2010-12-09 18:17:56 +01:00
Robert Reif f12c0c7ada Tokenizer: add assert(_settings) to Tokenizer to insure the tokenizer always has settings. Ticket: #2219 2010-12-01 18:00:55 +01:00
Daniel Marjamäki 065af5c444 Fixed #2251 (False positive: Possible null pointer reference) 2010-11-29 20:30:23 +01:00
Daniel Marjamäki cdb685c83c Fixed #2245 (False positive: Possible null pointer dereference) 2010-11-29 20:19:31 +01:00
Daniel Marjamäki 29bb553782 Fixed #2207 (False positive: uninitialized variable (return if uninitialized)) 2010-11-15 20:35:01 +01:00
Daniel Marjamäki a8d7ac0f0d Fixed #2193 (false negative: nullpointer dereference) 2010-11-12 19:42:02 +01:00
Daniel Marjamäki 95bfa50d7e Null pointers: Fixed false negatives in the CheckAndDeRef checking 2010-11-04 21:22:29 +01:00
Daniel Marjamäki f3bf14ba13 Fixed #2171 (false positive: possible nullpointer dereference) 2010-11-04 21:09:32 +01:00
Daniel Marjamäki c29940b114 Fixed #2166 (false positive: possible null pointer dereference) 2010-11-04 18:18:19 +01:00
Daniel Marjamäki 94fc13f0c4 Fixed #2159 (False positive: Null pointer dereference 'if (!x) return *y;') 2010-11-01 19:21:08 +01:00
Daniel Marjamäki 285d76a413 Null pointers: Fixed false positive for 'x && x->y' 2010-10-31 19:48:58 +01:00
Daniel Marjamäki df8a93bf97 Null pointers: Broke out the checking into separate file 2010-10-31 11:51:25 +01:00