2026-05-01 16:52 ftp://ftp.de.debian.org/debian/pool/main/d/dwdiff/dwdiff_2.1.4.orig.tar.xz cppcheck-options: --library=posix --library=gnu --library=bsd --library=icu --inconclusive --enable=style,information --inline-suppr --template=daca2 --disable=missingInclude --suppress=unmatchedSuppression --check-library --debug-warnings --suppress=autoNoType --suppress=valueFlowBailout --suppress=bailoutUninitVar --suppress=symbolDatabaseWarning --suppress=normalCheckLevelConditionExpressions -D__GNUC__ --platform=unix64 -j6 platform: Linux-7.0.3+deb14-amd64-x86_64-with-glibc2.42 python: 3.13.12 client-version: 1.4.0 compiler: g++ (Debian 15.2.0-17) 15.2.0 cppcheck: head 2.20.0 head-info: e5c4a734 (2026-05-01 11:10:43 +0200) count: 67 66 elapsed-time: 0.4 0.3 head-timing-info: old-timing-info: head results: dwdiff-2.1.4/src/buffer.c:45:2: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/file.c:61:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDONLY [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/file.c:82:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/file.c:126:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/file.c:140:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/file.c:171:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/file.c:181:30: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/file.c:197:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/file.c:212:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/file.c:235:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/file.c:250:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/buffer.c:213:10: style: Variable 'ignore' is assigned a value that is never used. [unreadVariable] dwdiff-2.1.4/src/buffer.c:228:11: style: Variable 'ignore' is assigned a value that is never used. [unreadVariable] dwdiff-2.1.4/src/file.c:259:21: style: Parameter 'file' can be declared as pointer to const [constParameterPointer] dwdiff-2.1.4/src/file.c:264:19: style: Parameter 'file' can be declared as pointer to const [constParameterPointer] dwdiff-2.1.4/src/file.c:269:24: style: Parameter 'file' can be declared as pointer to const [constParameterPointer] dwdiff-2.1.4/src/dwfilter.c:61:34: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/dwfilter.c:146:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable S_IRWXU [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/dwfilter.c:164:60: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/dwdiff.c:70:48: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/dwdiff.c:292:61: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/dwdiff.c:430:71: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/dwdiff.c:581:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/doDiff.c:52:32: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/hashtable.c:129:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PTRDIFF_MAX [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/hashtable.c:96:32: style: Parameter 'data' can be declared as pointer to const [constParameterPointer] dwdiff-2.1.4/src/profile.c:62:4: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/stream.c:74:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/tempfile.c:48:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable S_IRWXU [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/option.c:470:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/option.c:545:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/util.c:31:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] dwdiff-2.1.4/src/doDiff.c:469:39: style: Parameter 'script' can be declared as pointer to const [constParameterPointer] dwdiff-2.1.4/src/doDiff.c:476:37: style: Parameter 'script' can be declared as pointer to const [constParameterPointer] dwdiff-2.1.4/src/doDiff.c:543:81: style: Parameter 'range' can be declared as pointer to const [constParameterPointer] dwdiff-2.1.4/src/profile.c:78:4: error: Memory leak: pathname [memleak] dwdiff-2.1.4/src/profile.c:123:8: warning: If memory allocation fails, then there is a possible null pointer dereference: new_option [nullPointerOutOfMemory] dwdiff-2.1.4/src/profile.c:113:37: note: Assuming allocation function fails dwdiff-2.1.4/src/profile.c:113:37: note: Assignment 'new_option=malloc(sizeof(struct ProfileOption))', assigned value is 0 dwdiff-2.1.4/src/profile.c:123:8: note: Null pointer dereference dwdiff-2.1.4/src/profile.c:125:3: warning: If memory allocation fails, then there is a possible null pointer dereference: new_option [nullPointerOutOfMemory] dwdiff-2.1.4/src/profile.c:113:37: note: Assuming allocation function fails dwdiff-2.1.4/src/profile.c:113:37: note: Assignment 'new_option=malloc(sizeof(struct ProfileOption))', assigned value is 0 dwdiff-2.1.4/src/profile.c:125:3: note: Null pointer dereference dwdiff-2.1.4/src/profile.c:126:3: warning: If memory allocation fails, then there is a possible null pointer dereference: new_option [nullPointerOutOfMemory] dwdiff-2.1.4/src/profile.c:113:37: note: Assuming allocation function fails dwdiff-2.1.4/src/profile.c:113:37: note: Assignment 'new_option=malloc(sizeof(struct ProfileOption))', assigned value is 0 dwdiff-2.1.4/src/profile.c:126:3: note: Null pointer dereference dwdiff-2.1.4/src/profile.c:127:10: warning: If memory allocation fails, then there is a possible null pointer dereference: new_option [nullPointerOutOfMemory] dwdiff-2.1.4/src/profile.c:113:37: note: Assuming allocation function fails dwdiff-2.1.4/src/profile.c:113:37: note: Assignment 'new_option=malloc(sizeof(struct ProfileOption))', assigned value is 0 dwdiff-2.1.4/src/profile.c:127:10: note: Null pointer dereference dwdiff-2.1.4/src/profile.c:129:3: warning: If memory allocation fails, then there is a possible null pointer dereference: new_option [nullPointerOutOfMemory] dwdiff-2.1.4/src/profile.c:113:37: note: Assuming allocation function fails dwdiff-2.1.4/src/profile.c:113:37: note: Assignment 'new_option=malloc(sizeof(struct ProfileOption))', assigned value is 0 dwdiff-2.1.4/src/profile.c:129:3: note: Null pointer dereference dwdiff-2.1.4/src/profile.c:144:3: warning: If memory allocation fails, then there is a possible null pointer dereference: new_option [nullPointerOutOfMemory] dwdiff-2.1.4/src/profile.c:113:37: note: Assuming allocation function fails dwdiff-2.1.4/src/profile.c:113:37: note: Assignment 'new_option=malloc(sizeof(struct ProfileOption))', assigned value is 0 dwdiff-2.1.4/src/profile.c:144:3: note: Null pointer dereference dwdiff-2.1.4/src/profile.c:170:95: style:inconclusive: Function 'applyProfileOptions' argument 3 names different: declaration '' definition 'argv0'. [funcArgNamesDifferentUnnamed] dwdiff-2.1.4/src/option.c:413:20: warning: If memory allocation fails, then there is a possible null pointer dereference: color [nullPointerOutOfMemory] dwdiff-2.1.4/src/option.c:411:17: note: Assuming allocation function fails dwdiff-2.1.4/src/option.c:411:17: note: Assignment 'color=strdup(_color)', assigned value is 0 dwdiff-2.1.4/src/option.c:413:20: note: Null pointer dereference dwdiff-2.1.4/src/dwfilter.c:63:3: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] dwdiff-2.1.4/src/dwfilter.c:73:3: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] dwdiff-2.1.4/src/dwfilter.c:43:8: style: Variable 'optArg' can be declared as pointer to const [constVariablePointer] dwdiff-2.1.4/src/option.c:548:3: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] dwdiff-2.1.4/src/option.c:558:3: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] dwdiff-2.1.4/src/option.c:597:3: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] dwdiff-2.1.4/src/option.c:605:3: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] dwdiff-2.1.4/src/option.c:627:3: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] dwdiff-2.1.4/src/option.c:646:3: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] dwdiff-2.1.4/src/option.c:462:17: error: Uninitialized variable: sequenceBuffer [legacyUninitvar] dwdiff-2.1.4/src/option.c:473:20: style: Variable 'error' is assigned a value that is never used. [unreadVariable] dwdiff-2.1.4/src/option.c:789:8: style: Unused variable: optArg [unusedVariable] dwdiff-2.1.4/src/option.c:789:8: style: Unused variable: optargind [unusedVariable] dwdiff-2.1.4/src/diff/diffseq.h:230:13: style: 'continue' is redundant since it is the last statement in a loop. [redundantContinue] dwdiff-2.1.4/src/diff/diffseq.h:263:13: style: 'continue' is redundant since it is the last statement in a loop. [redundantContinue] dwdiff-2.1.4/src/diff/analyze.c:286:3: style: 'continue' is redundant since it is the last statement in a loop. [redundantContinue] dwdiff-2.1.4/src/diff/analyze.c:298:6: style: 'continue' is redundant since it is the last statement in a loop. [redundantContinue] dwdiff-2.1.4/src/diff/analyze.c:319:7: style: 'continue' is redundant since it is the last statement in a loop. [redundantContinue] dwdiff-2.1.4/src/diff/analyze.c:353:3: style: 'continue' is redundant since it is the last statement in a loop. [redundantContinue] dwdiff-2.1.4/src/diff/analyze.c:96:12: style: Variable 'counts' can be declared as pointer to const [constVariablePointer] dwdiff-2.1.4/src/diff/analyze.c:234:13: style: Variable 'discards' can be declared as pointer to const [constVariablePointer] dwdiff-2.1.4/src/diff/analyze.c:388:9: style: Variable 'changed0' can be declared as pointer to const [constVariablePointer] dwdiff-2.1.4/src/diff/analyze.c:389:9: style: Variable 'changed1' can be declared as pointer to const [constVariablePointer] diff: head dwdiff-2.1.4/src/profile.c:170:95: style:inconclusive: Function 'applyProfileOptions' argument 3 names different: declaration '' definition 'argv0'. [funcArgNamesDifferentUnnamed] DONE