2025-09-18 10:34 ftp://ftp.de.debian.org/debian/pool/main/d/ddcci-driver-linux/ddcci-driver-linux_0.4.5.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 -j4 platform: Linux-6.12.43+deb13-amd64-x86_64-with-glibc2.41 python: 3.13.5 client-version: 1.3.67 compiler: g++ (Debian 14.2.0-19) 14.2.0 cppcheck: head 2.18.0 head-info: 3e169d6 (2025-09-15 13:38:15 +0200) count: 11 65 elapsed-time: 0.1 0.3 head-timing-info: old-timing-info: head results: ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1284:0: error: failed to evaluate #if condition, undefined function-like macro invocation: KERNEL_VERSION( ... ) [preprocessorErrorDirective] ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1284:2: error: failed to evaluate #if condition, undefined function-like macro invocation: KERNEL_VERSION( ... ) [preprocessorErrorDirective] ddcci-driver-linux-v0.4.5/ddcci-backlight/ddcci-backlight.c:72:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOTSUPP [valueFlowBailoutIncompleteVar] ddcci-driver-linux-v0.4.5/ddcci-backlight/ddcci-backlight.c:105:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FB_BLANK_UNBLANK [valueFlowBailoutIncompleteVar] ddcci-driver-linux-v0.4.5/ddcci-backlight/ddcci-backlight.c:222:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOENT [valueFlowBailoutIncompleteVar] ddcci-driver-linux-v0.4.5/ddcci-backlight/ddcci-backlight.c:249:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOENT [valueFlowBailoutIncompleteVar] ddcci-driver-linux-v0.4.5/ddcci-backlight/ddcci-backlight.c:308:5: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GFP_KERNEL [valueFlowBailoutIncompleteVar] ddcci-driver-linux-v0.4.5/ddcci-backlight/ddcci-backlight.c:163:7: style: Condition '!ptr' is always false [knownConditionTrueFalse] ddcci-driver-linux-v0.4.5/ddcci-backlight/ddcci-backlight.c:345:22: style: Variable 'drv_data->used_vcp' is reassigned a value before the old one has been used. [redundantAssignment] ddcci-driver-linux-v0.4.5/ddcci-backlight/ddcci-backlight.c:343:23: note: drv_data->used_vcp is assigned ddcci-driver-linux-v0.4.5/ddcci-backlight/ddcci-backlight.c:345:22: note: drv_data->used_vcp is overwritten ddcci-driver-linux-v0.4.5/ddcci-backlight/ddcci-backlight.c:92:24: style: Parameter 'info' can be declared as pointer to const. However it seems that 'ddcci_backlight_check_fb' is a callback function, if 'info' is declared with const you might also need to cast function pointer(s). [constParameterCallback] ddcci-driver-linux-v0.4.5/ddcci-backlight/ddcci-backlight.c:138:14: note: You might need to cast the function pointer here ddcci-driver-linux-v0.4.5/ddcci-backlight/ddcci-backlight.c:92:24: note: Parameter 'info' can be declared as pointer to const ddcci-driver-linux-v0.4.5/ddcci-backlight/ddcci-backlight.c:94:33: style: Variable 'drv_data' can be declared as pointer to const [constVariablePointer] diff: 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1020:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GFP_KERNEL [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1030:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable DDCCI_FLAG_EXTERNAL [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1104:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EAGAIN [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1146:25: style: Parameter 'data' can be declared as pointer to const. However it seems that 'ddcci_device_write' is a callback function, if 'data' is declared with const you might also need to cast function pointer(s). [constParameterCallback] ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1158:15: note: You might need to cast the function pointer here ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1146:25: note: Parameter 'data' can be declared as pointer to const 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1151:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EAGAIN [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1173:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EAGAIN [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1199:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EAGAIN [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1233:23: style: Variable 'device' can be declared as pointer to const [constVariablePointer] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1234:23: style: Variable 'driver' can be declared as pointer to const [constVariablePointer] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1255:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1275:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] head ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1284:0: error: failed to evaluate #if condition, undefined function-like macro invocation: KERNEL_VERSION( ... ) [preprocessorErrorDirective] head ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1284:2: error: failed to evaluate #if condition, undefined function-like macro invocation: KERNEL_VERSION( ... ) [preprocessorErrorDirective] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1317:7: style: Condition '!end' is always false [knownConditionTrueFalse] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1352:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:137:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1403:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1473:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GFP_KERNEL [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1614:30: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable DDCCI_COMMAND_ID [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1616:17: style: Variable 'cmd' can be declared as pointer to const [constVariablePointer] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1683:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENODEV [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1702:7: style: Redundant initialization for 'ret'. The initialized value is overwritten before it is read. [redundantInitialization] ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1683:13: note: ret is initialized ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1702:7: note: ret is overwritten 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1757:58: style: Parameter 'p' can be declared as pointer to const. However it seems that 'ddcci_remove_helper' is a callback function, if 'p' is declared with const you might also need to cast function pointer(s). [constParameterCallback] ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1888:54: note: You might need to cast the function pointer here ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1757:58: note: Parameter 'p' can be declared as pointer to const 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:1763:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable DDCCI_FLAG_REMOVED [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:184:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable DDCCI_QUIRK_WRITE_BYTEWISE [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:207:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable DDCCI_HOST_ADDR_EVEN [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:293:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable DDCCI_QUIRK_SKIP_FIRST_BYTE [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:328:27: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable DDCCI_COMMAND_CAPS [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:393:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENODEV [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:556:50: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GFP_KERNEL [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:598:45: style: Parameter 'filp' can be declared as pointer to const. However it seems that 'ddcci_cdev_read' is a callback function, if 'filp' is declared with const you might also need to cast function pointer(s). [constParameterCallback] ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:692:10: note: You might need to cast the function pointer here ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:598:45: note: Parameter 'filp' can be declared as pointer to const 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:604:44: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_NONBLOCK [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:637:46: style: Parameter 'filp' can be declared as pointer to const. However it seems that 'ddcci_cdev_write' is a callback function, if 'filp' is declared with const you might also need to cast function pointer(s). [constParameterCallback] ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:693:11: note: You might need to cast the function pointer here ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:637:46: note: Parameter 'filp' can be declared as pointer to const 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:643:44: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_NONBLOCK [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:685:44: style: Parameter 'filp' can be declared as pointer to const. However it seems that 'ddcci_cdev_seek' is a callback function, if 'filp' is declared with const you might also need to cast function pointer(s). [constParameterCallback] ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:696:12: note: You might need to cast the function pointer here ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:685:44: note: Parameter 'filp' can be declared as pointer to const 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:687:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:702:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:720:6: style: Redundant initialization for 'ret'. The initialized value is overwritten before it is read. [redundantInitialization] ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:702:10: note: ret is initialized ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:720:6: note: ret is overwritten 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:737:23: style: Variable 'device' can be declared as pointer to const [constVariablePointer] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:738:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOENT [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:762:23: style: Variable 'device' can be declared as pointer to const [constVariablePointer] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:763:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOENT [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:784:23: style: Variable 'device' can be declared as pointer to const [constVariablePointer] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:785:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOENT [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:806:23: style: Variable 'device' can be declared as pointer to const [constVariablePointer] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:807:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOENT [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:828:23: style: Variable 'device' can be declared as pointer to const [constVariablePointer] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:829:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOENT [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:850:23: style: Variable 'device' can be declared as pointer to const [constVariablePointer] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:851:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOENT [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:873:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOENT [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:885:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOENT [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:886:24: warning: Either the condition 'device!=NULL' is redundant or there is possible null pointer dereference: device. [nullPointerRedundantCheck] ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:890:6: note: Assuming that condition 'device!=NULL' is not redundant ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:886:24: note: Null pointer dereference 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:887:25: warning: Either the condition 'device!=NULL' is redundant or there is possible null pointer dereference: device. [nullPointerRedundantCheck] ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:890:6: note: Assuming that condition 'device!=NULL' is not redundant ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:887:25: note: Null pointer dereference 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:888:25: warning: Either the condition 'device!=NULL' is redundant or there is possible null pointer dereference: device. [nullPointerRedundantCheck] ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:890:6: note: Assuming that condition 'device!=NULL' is not redundant ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:888:25: note: Null pointer dereference 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:90:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:949:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable DDCCI_MODULE_PREFIX [valueFlowBailoutIncompleteVar] 2.18.0 ddcci-driver-linux-v0.4.5/ddcci/ddcci.c:998:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable core_lock [valueFlowBailoutIncompleteVar] DONE