cppcheck/lib
Rikard Falkeborn abea580b78 Fix FP memory leak with unknown function call in condition (#2012)
* Fix FP memory leak with unknown function call in condition

This was introduced in 8513fb81d2 when
fixing memory leaks for global variables allocated in condition. The
refactored code had an inconsistency where c and c++ code behaved
slightly differently when `var` is NULL. This seemed to not have an
impact as the code was written prior to 8513fb81d2,
but when the same code was used for conditions, FPs were introduced.

The introduced FPs were memleak warnings when there should have been an
information message about missing configurations for code like

	void f() {
		char *p = malloc(10);
		if (set_data(p)) {}
	}

Fix this by always returning true if varTok->Variable() is NULL for
both c and c++ code.

* Improve function name
2019-07-18 15:23:19 +02:00
..
CMakeLists.txt CMake: Find header in externals, e.g. externals/picojson.h 2019-04-22 18:52:02 +02:00
analyzerinfo.cpp Update Copyright 2019-06-29 07:49:14 +02:00
analyzerinfo.h Updated copyright year 2018-10-13 18:20:31 +02:00
astutils.cpp Switch to use lifetime analysis for iterators and pointers to invalid containers 2019-07-18 10:56:44 +02:00
astutils.h Switch to use lifetime analysis for iterators and pointers to invalid containers 2019-07-18 10:56:44 +02:00
check.cpp Updated copyright year 2018-10-13 18:20:31 +02:00
check.h Disable all simplified checks 2019-03-16 09:17:50 +01:00
check64bit.cpp Rename _tokenizer, _settings, _errorLogger 2018-06-16 16:10:28 +02:00
check64bit.h Disable all simplified checks 2019-03-16 09:17:50 +01:00
checkassert.cpp Update copyright year 2019-02-09 07:24:06 +01:00
checkassert.h Disable all simplified checks 2019-03-16 09:17:50 +01:00
checkautovariables.cpp Switch to use lifetime analysis for iterators and pointers to invalid containers 2019-07-18 10:56:44 +02:00
checkautovariables.h Fix issue 3695: Handle class pointers 2019-07-07 10:16:19 +02:00
checkbool.cpp Update Copyright 2019-06-29 07:49:14 +02:00
checkbool.h Disable all simplified checks 2019-03-16 09:17:50 +01:00
checkboost.cpp Rename _tokenizer, _settings, _errorLogger 2018-06-16 16:10:28 +02:00
checkboost.h Disable all simplified checks 2019-03-16 09:17:50 +01:00
checkbufferoverrun.cpp Refactoring: Use enum class 2019-07-16 10:51:26 +02:00
checkbufferoverrun.h Fix Cppcheck warnings 2019-06-15 13:01:45 +02:00
checkclass.cpp Modernize: Use enum class 2019-07-17 10:39:06 +02:00
checkclass.h Replace 'unsigned' with 'nonneg' in checkclass 2019-07-16 09:03:45 +02:00
checkcondition.cpp Replace 'unsigned' with 'nonneg' in checkcondition 2019-07-16 08:21:25 +02:00
checkcondition.h Replace 'unsigned' with 'nonneg' in checkcondition 2019-07-16 08:21:25 +02:00
checkexceptionsafety.cpp Refactoring; Use range for loops 2018-07-14 09:49:03 +02:00
checkexceptionsafety.h Disable all simplified checks 2019-03-16 09:17:50 +01:00
checkfunctions.cpp Replace 'unsigned' with 'nonneg' in checkfunctions 2019-07-16 08:49:02 +02:00
checkfunctions.h Replace 'unsigned' with 'nonneg' in checkfunctions 2019-07-16 08:49:02 +02:00
checkinternal.cpp CheckInternal: Extend redundant null pointer check before Token::Match() (#1789) 2019-04-06 07:44:44 +02:00
checkinternal.h Disable all simplified checks 2019-03-16 09:17:50 +01:00
checkio.cpp checkio.cpp: Fix forgotten "nonneg" change which breaks build 2019-07-16 09:30:36 +02:00
checkio.h replace 'unsigned' with 'nonneg' in checkio 2019-07-16 08:37:26 +02:00
checkleakautovar.cpp Fix FP memory leak with unknown function call in condition (#2012) 2019-07-18 15:23:19 +02:00
checkleakautovar.h Replace 'unsigned' with 'nonneg' in checkleakautovar 2019-07-16 08:54:21 +02:00
checkmemoryleak.cpp Replace 'unsigned' with 'nonneg' 2019-07-17 09:11:42 +02:00
checkmemoryleak.h Replace 'unsigned' with 'nonneg' 2019-07-17 09:11:42 +02:00
checknullpointer.cpp Improve diagnostics with null smart pointers (#1805) 2019-04-26 11:30:09 +02:00
checknullpointer.h Disable all simplified checks 2019-03-16 09:17:50 +01:00
checkother.cpp Detect shadowed arguments 2019-07-17 17:08:42 +02:00
checkother.h Detect shadowed arguments 2019-07-17 17:08:42 +02:00
checkpostfixoperator.cpp Refactoring: Use ranged for loop 2018-07-13 16:50:12 +02:00
checkpostfixoperator.h Disable all simplified checks 2019-03-16 09:17:50 +01:00
checksizeof.cpp Update Copyright 2019-06-29 07:49:14 +02:00
checksizeof.h Disable all simplified checks 2019-03-16 09:17:50 +01:00
checkstl.cpp Switch to use lifetime analysis for iterators and pointers to invalid containers 2019-07-18 10:56:44 +02:00
checkstl.h Switch to use lifetime analysis for iterators and pointers to invalid containers 2019-07-18 10:56:44 +02:00
checkstring.cpp Overlapping sprintf, improve handling of casts (#1945) 2019-07-05 12:27:39 +02:00
checkstring.h Checkstring fixes (#1783) 2019-04-06 06:54:38 +02:00
checktype.cpp Try to clarify signConversion message 2019-07-17 22:41:24 +02:00
checktype.h Refactoring; enum class 2019-07-10 14:05:16 +02:00
checkuninitvar.cpp Mark members and arguments with 'nonneg' 2019-07-14 12:22:33 +02:00
checkuninitvar.h Mark members and arguments with 'nonneg' 2019-07-14 12:22:33 +02:00
checkunusedfunctions.cpp Fixed #8580 (False positive: unused function (lambda)) 2019-04-27 17:17:51 +02:00
checkunusedfunctions.h Disable all simplified checks 2019-03-16 09:17:50 +01:00
checkunusedvar.cpp Fix false positives in self check: Variable t is assigned a value that is never used. Classes with destructors was not handled properly. 2019-07-14 16:20:45 +02:00
checkunusedvar.h Disable all simplified checks 2019-03-16 09:17:50 +01:00
checkvaarg.cpp Update copyright year 2019-02-09 07:24:06 +01:00
checkvaarg.h Disable all simplified checks 2019-03-16 09:17:50 +01:00
config.h sync (#1835) 2019-05-17 09:31:41 +02:00
cppcheck.cpp Detect shadowed arguments 2019-07-17 17:08:42 +02:00
cppcheck.h test/cli: execute addon 2019-04-14 15:00:03 +02:00
cppcheck.natvis Fixed Visual Studio Natvis file after recent refactoring (#1299) 2018-07-09 08:27:26 +02:00
cppcheck.vcxproj Increase Windows stack size to 8M (#1998) 2019-07-15 12:39:58 +02:00
cppcheck.vcxproj.filters Add ctu sources to VS projects 2018-12-27 22:11:40 +01:00
ctu.cpp Mark members and arguments with 'nonneg' 2019-07-14 12:22:33 +02:00
ctu.h Mark members and arguments with 'nonneg' 2019-07-14 12:22:33 +02:00
errorlogger.cpp fix crash in daca gcc-avr from intentional bad instantiation test (#1994) 2019-07-15 12:41:06 +02:00
errorlogger.h fix crash in daca gcc-avr from intentional bad instantiation test (#1994) 2019-07-15 12:41:06 +02:00
importproject.cpp --addon: Use json for addon output 2019-06-24 19:29:43 +02:00
importproject.h analyzing one vs config (first debug config that matches platform) 2019-04-13 20:01:40 +02:00
lib.pri CTU: Refactoring 2018-12-25 21:11:23 +01:00
library.cpp Modernize: Use enum class for Library::Action and Library::Yield 2019-07-17 11:39:30 +02:00
library.h Modernize: Use enum class for Library::Action and Library::Yield 2019-07-17 11:39:30 +02:00
matchcompiler.h
mathlib.cpp Modernize: use enum class 2019-07-17 10:43:18 +02:00
mathlib.h Update copyright year 2019-02-09 07:24:06 +01:00
path.cpp Fixed #error in self check when __CPPCHECK__ is defined 2019-04-30 20:31:46 +02:00
path.h Update copyright year 2019-02-09 07:24:06 +01:00
pathmatch.cpp Updated copyright year 2018-10-13 18:20:31 +02:00
pathmatch.h Updated copyright year 2018-10-13 18:20:31 +02:00
pcrerules.pri
platform.cpp
platform.h Mark members and arguments with 'nonneg' 2019-07-14 12:22:33 +02:00
preprocessor.cpp Add missing include 2019-05-09 06:55:36 +02:00
preprocessor.h Renamed private member file0 2018-06-17 09:06:16 +02:00
settings.cpp Rename safeValues to unknownValues 2019-07-11 16:05:48 +02:00
settings.h Rename safeValues to unknownValues 2019-07-11 16:05:48 +02:00
standards.h Update Copyright 2019-06-29 07:49:14 +02:00
suppressions.cpp Fix Cppcheck warning: Suppressions::dump can be const 2019-06-29 07:53:32 +02:00
suppressions.h Fix Cppcheck warning: Suppressions::dump can be const 2019-06-29 07:53:32 +02:00
symboldatabase.cpp Refactoring: Use range for loop 2019-07-18 14:55:01 +02:00
symboldatabase.h Safe functions: Check more possible function argument values 2019-07-10 16:59:05 +02:00
templatesimplifier.cpp Fix issue 9211: No error on divide by zero outside template instatiation 2019-07-18 14:55:30 +02:00
templatesimplifier.h Fix issue 9211: No error on divide by zero outside template instatiation 2019-07-18 14:55:30 +02:00
timer.cpp Rename private member variables 2018-06-17 17:20:16 +02:00
timer.h Update copyright year 2019-02-09 07:24:06 +01:00
token.cpp Rename fileInd to fileIndex 2019-07-17 16:28:47 +02:00
token.h Fix wrong 'nonneg' 2019-07-14 17:31:26 +02:00
tokenize.cpp Fix issue 9211: No error on divide by zero outside template instatiation 2019-07-18 14:55:30 +02:00
tokenize.h Avoid 'unsigned' in Tokenizer. Use 'nonneg' instead for arguments and members. 2019-07-14 15:48:20 +02:00
tokenlist.cpp Replace 'unsigned' with 'nonneg' 2019-07-17 10:14:25 +02:00
tokenlist.h Replace 'unsigned' with 'nonneg' 2019-07-17 10:14:25 +02:00
utils.h Add 'nonneg' macro 2019-07-14 11:40:44 +02:00
valueflow.cpp Switch to use lifetime analysis for iterators and pointers to invalid containers 2019-07-18 10:56:44 +02:00
valueflow.h Switch to use lifetime analysis for iterators and pointers to invalid containers 2019-07-18 10:56:44 +02:00
version.h Set version to 1.88.99/1.89 dev 2019-07-02 20:59:52 +02:00
version.rc