2026-03-13 17:18 ftp://ftp.de.debian.org/debian/pool/main/b/bopm/bopm_3.1.3.orig.tar.gz cppcheck-options: --library=posix --library=gnu --library=bsd --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 -j1 platform: Linux-6.8.0-100-generic-x86_64-with-glibc2.39 python: 3.12.3 client-version: 1.3.70 compiler: g++ (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0 cppcheck: head 2.20.0 head-info: 7d80f64 (2026-03-13 11:20:53 +0100) count: 185 185 elapsed-time: 36.7 6.1 head-timing-info: old-timing-info: head results: config-lexer.c:829:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] config-lexer.c:1531:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] config-lexer.c:1670:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] config-lexer.c:1817:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] config-lexer.c:2051:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] config-lexer.l:239:42: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] config-lexer.c:1497:27: warning: Possible null pointer dereference: b [nullPointer] config-lexer.c:1494:24: note: Assignment 'b=(yy_buffer_stack)?(yy_buffer_stack)[yy_buffer_stack_top]:NULL', assigned value is 0 config-lexer.c:1497:27: note: Null pointer dereference config-lexer.c:1499:9: warning: Possible null pointer dereference: b [nullPointer] config-lexer.c:1494:24: note: Assignment 'b=(yy_buffer_stack)?(yy_buffer_stack)[yy_buffer_stack_top]:NULL', assigned value is 0 config-lexer.c:1499:9: note: Null pointer dereference config-lexer.c:1821:2: warning: Possible null pointer dereference: b [nullPointer] config-lexer.c:1710:17: note: Calling function 'yy_init_buffer', 1st argument '(yy_buffer_stack)?(yy_buffer_stack)[yy_buffer_stack_top]:NULL' value is 0 config-lexer.c:1821:2: note: Null pointer dereference config-lexer.c:1822:2: warning: Possible null pointer dereference: b [nullPointer] config-lexer.c:1710:17: note: Calling function 'yy_init_buffer', 1st argument '(yy_buffer_stack)?(yy_buffer_stack)[yy_buffer_stack_top]:NULL' value is 0 config-lexer.c:1822:2: note: Null pointer dereference config-lexer.c:1531:3: style: Redundant initialization for 'c'. The initialized value is overwritten before it is read. [redundantInitialization] config-lexer.c:1531:3: note: c is initialized config-lexer.c:1531:3: note: c is overwritten config-lexer.l:106:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:111:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:116:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:121:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:126:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:131:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:136:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:141:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:146:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:151:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:156:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:161:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:166:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:171:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:176:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:181:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:186:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:191:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:196:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:201:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:206:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:211:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:216:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:221:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:226:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:231:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:236:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:241:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:246:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:251:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:256:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:261:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:266:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:271:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:276:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:281:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:286:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:291:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:296:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:301:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:306:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:311:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:316:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:324:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:332:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:340:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:348:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:356:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:364:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:372:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:380:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:388:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:396:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:404:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:412:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.l:420:2: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] config-lexer.c:1599:59: style:inconclusive: Function 'yy_try_NUL_trans' argument 1 names different: declaration 'current_state' definition 'yy_current_state'. [funcArgNamesDifferent] config-lexer.c:355:54: note: Function 'yy_try_NUL_trans' argument 1 names different: declaration 'current_state' definition 'yy_current_state'. config-lexer.c:1599:59: note: Function 'yy_try_NUL_trans' argument 1 names different: declaration 'current_state' definition 'yy_current_state'. config-lexer.c:2002:48: style:inconclusive: Function 'yy_scan_string' argument 1 names different: declaration 'yy_str' definition 'yystr'. [funcArgNamesDifferent] config-lexer.c:305:47: note: Function 'yy_scan_string' argument 1 names different: declaration 'yy_str' definition 'yystr'. config-lexer.c:2002:48: note: Function 'yy_scan_string' argument 1 names different: declaration 'yy_str' definition 'yystr'. config-lexer.c:2015:48: style:inconclusive: Function 'yy_scan_bytes' argument 1 names different: declaration 'bytes' definition 'yybytes'. [funcArgNamesDifferent] config-lexer.c:306:46: note: Function 'yy_scan_bytes' argument 1 names different: declaration 'bytes' definition 'yybytes'. config-lexer.c:2015:48: note: Function 'yy_scan_bytes' argument 1 names different: declaration 'bytes' definition 'yybytes'. config-lexer.c:2015:62: style:inconclusive: Function 'yy_scan_bytes' argument 2 names different: declaration 'len' definition '_yybytes_len'. [funcArgNamesDifferent] config-lexer.c:306:56: note: Function 'yy_scan_bytes' argument 2 names different: declaration 'len' definition '_yybytes_len'. config-lexer.c:2015:62: note: Function 'yy_scan_bytes' argument 2 names different: declaration 'len' definition '_yybytes_len'. config-lexer.c:1444:17: style: Variable 'source' can be declared as pointer to const [constVariablePointer] config-lexer.c:2015:48: style: Parameter 'yybytes' can be declared as pointer to const [constParameterPointer] config-lexer.c:2049:43: style: Parameter 'msg' can be declared as pointer to const [constParameterPointer] config-parser.y:121:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable negcache [valueFlowBailoutIncompleteVar] config-parser.c:1372:5: warning: Assignment of function parameter has no effect outside the function. Did you forget dereferencing it? [uselessAssignmentPtrArg] bopm-3.1.3/src/dnsbl.c:139:13: warning:inconclusive: The buffer 'text_type' may not be null-terminated after the call to strncpy(). [terminateStrncpy] bopm-3.1.3/src/firedns.c:184:39: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable in_addr [valueFlowBailoutIncompleteVar] bopm-3.1.3/src/firedns.c:496:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_INET [valueFlowBailoutIncompleteVar] bopm-3.1.3/src/firedns.c:777:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable events [valueFlowBailoutIncompleteVar] bopm-3.1.3/src/firedns.c:821:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] bopm-3.1.3/src/firedns.c:444:18: style: Operator '|' with one operand equal to zero is redundant. [badBitmaskCheck] bopm-3.1.3/src/firedns.c:679:17: style: Condition 'l-i<10' is always true [knownConditionTrueFalse] bopm-3.1.3/src/firedns.c:661:26: note: Assuming that condition 'iscans' is less than zero. [unsignedLessThanZero] bopm-3.1.3/src/scan.c:210:21: style: Variable 'uc' can be declared as pointer to const [constVariablePointer] bopm-3.1.3/src/scan.c:470:52: style: Parameter 'msg' can be declared as pointer to const [constParameterPointer] bopm-3.1.3/src/scan.c:677:24: style: Variable 'ss' can be declared as pointer to const [constVariablePointer] bopm-3.1.3/src/scan.c:723:24: style: Variable 'ss' can be declared as pointer to const [constVariablePointer] bopm-3.1.3/src/scan.c:902:57: style: Parameter 'format' can be declared as pointer to const [constParameterPointer] bopm-3.1.3/src/scan.c:998:20: style: Variable 'addr' can be declared as pointer to const [constVariablePointer] bopm-3.1.3/src/scan.c:1137:28: style: Parameter 'mask' can be declared as pointer to const [constParameterPointer] bopm-3.1.3/src/scan.c:1137:40: style: Parameter 'ipmask' can be declared as pointer to const [constParameterPointer] bopm-3.1.3/src/scan.c:1140:10: style: Variable 'exempt_mask' can be declared as pointer to const [constVariablePointer] bopm-3.1.3/src/scan.c:1166:15: style: Variable 'tm_present' can be declared as pointer to const [constVariablePointer] bopm-3.1.3/src/scan.c:1167:24: style: Variable 'ss' can be declared as pointer to const [constVariablePointer] bopm-3.1.3/src/scan.c:687:7: style: Variable 'ss' is assigned a value that is never used. [unreadVariable] bopm-3.1.3/src/scan.c:733:7: style: Variable 'ss' is assigned a value that is never used. [unreadVariable] bopm-3.1.3/src/stats.c:250:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable RLIMIT_NOFILE [valueFlowBailoutIncompleteVar] diff: DONE