2026-07-26 18:47 ftp://ftp.de.debian.org/debian/pool/main/b/ballerburg/ballerburg_1.2.3+git20250916+ds.orig.tar.xz 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 -j96 platform: Linux-6.8.0-111-generic-x86_64-with-glibc2.39 python: 3.12.3 client-version: 1.4.0 compiler: g++ (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0 cppcheck: head 2.21.0 head-info: 6640862 (2026-07-26 07:32:28 -0400) count: 63 63 elapsed-time: 1.9 0.7 head-timing-info: old-timing-info: head results: ballerburg-1.2.3+git20250916+ds/src/ballergui.c:90:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_BUTTON_LEFT [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/paths.c:71:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable S_IRUSR [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/paths.c:100:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FILENAME_MAX [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/paths.c:142:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FILENAME_MAX [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/paths.c:231:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FILENAME_MAX [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/paths.c:262:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FILENAME_MAX [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/ballergui.c:31:39: style: Parameter 'ev' can be declared as pointer to const [constParameterPointer] ballerburg-1.2.3+git20250916+ds/src/paths.c:174:19: style: Condition 'psExecDir[0]==0' is always true [knownConditionTrueFalse] ballerburg-1.2.3+git20250916+ds/src/paths.c:152:17: note: Assignment 'psExecDir[0]='\0'', assigned value is 0 ballerburg-1.2.3+git20250916+ds/src/paths.c:174:19: note: Condition 'psExecDir[0]==0' is always true ballerburg-1.2.3+git20250916+ds/src/paths.c:114:9: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] ballerburg-1.2.3+git20250916+ds/src/paths.c:126:10: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] ballerburg-1.2.3+git20250916+ds/src/paths.c:87:8: style: Variable 'pAct' can be declared as pointer to const [constVariablePointer] ballerburg-1.2.3+git20250916+ds/src/music.c:88:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FILENAME_MAX [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/psg.c:223:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/psg.c:411:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable Uint8 [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/psg.c:465:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_AUDIO_S16 [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/screen.c:86:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_INIT_VIDEO [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/screen.c:134:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_WINDOW_FULLSCREEN [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/screen.c:495:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:63:18: warning: If memory allocation fails, then there is a possible null pointer dereference: text [nullPointerOutOfMemory] ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:119:26: note: Assuming allocation function fails ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:119:12: note: Assignment 't=(char*)malloc(strlen(text)+1)', assigned value is 0 ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:125:35: note: Calling function 'DlgAlert_FormatTextToBox', 1st argument 't' value is 0 ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:63:18: note: Null pointer dereference ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:69:36: warning: If memory allocation fails, then there is a possible null pointer dereference: text [nullPointerOutOfMemory] ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:119:26: note: Assuming allocation function fails ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:119:12: note: Assignment 't=(char*)malloc(strlen(text)+1)', assigned value is 0 ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:125:35: note: Calling function 'DlgAlert_FormatTextToBox', 1st argument 't' value is 0 ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:69:36: note: Null pointer dereference ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:124:9: warning: If memory allocation fails, then there is a possible null pointer dereference: t [nullPointerOutOfMemory] ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:119:26: note: Assuming allocation function fails ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:119:12: note: Assignment 't=(char*)malloc(strlen(text)+1)', assigned value is 0 ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:124:9: note: Null pointer dereference ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:66:12: error: If memory allocation fails: overflow in pointer arithmetic, NULL pointer is subtracted. [nullPointerArithmeticOutOfMemory] ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:119:26: note: Assuming allocation function fails ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:119:12: note: Assignment 't=(char*)malloc(strlen(text)+1)', assigned value is 0 ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:125:35: note: Calling function 'DlgAlert_FormatTextToBox', 1st argument 't' value is 0 ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:66:12: note: Null pointer subtraction ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:67:16: error: If memory allocation fails: pointer addition with NULL pointer. [nullPointerArithmeticOutOfMemory] ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:119:26: note: Assuming allocation function fails ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:119:12: note: Assignment 't=(char*)malloc(strlen(text)+1)', assigned value is 0 ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:125:35: note: Calling function 'DlgAlert_FormatTextToBox', 1st argument 't' value is 0 ballerburg-1.2.3+git20250916+ds/src/dlgAlert.c:67:16: note: Null pointer addition ballerburg-1.2.3+git20250916+ds/src/baller1.c:702:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FILENAME_MAX [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/settings.c:270:29: style: Argument 'n' shadows outer variable [shadowVariable] ballerburg-1.2.3+git20250916+ds/src/baller1.h:25:24: note: Shadowed variable ballerburg-1.2.3+git20250916+ds/src/settings.c:270:29: note: Shadow argument ballerburg-1.2.3+git20250916+ds/src/screen.c:379:54: style:inconclusive: Function 'scr_line' argument 5 names different: declaration 'rgba' definition 'rgb'. [funcArgNamesDifferent] ballerburg-1.2.3+git20250916+ds/src/screen.h:39:54: note: Function 'scr_line' argument 5 names different: declaration 'rgba' definition 'rgb'. ballerburg-1.2.3+git20250916+ds/src/screen.c:379:54: note: Function 'scr_line' argument 5 names different: declaration 'rgba' definition 'rgb'. ballerburg-1.2.3+git20250916+ds/src/screen.c:413:16: style:inconclusive: Function 'color' argument 1 names different: declaration 'a' definition 'c'. [funcArgNamesDifferent] ballerburg-1.2.3+git20250916+ds/src/screen.h:43:16: note: Function 'color' argument 1 names different: declaration 'a' definition 'c'. ballerburg-1.2.3+git20250916+ds/src/screen.c:413:16: note: Function 'color' argument 1 names different: declaration 'a' definition 'c'. ballerburg-1.2.3+git20250916+ds/src/screen.c:323:37: style: Parameter 'xy' can be declared as pointer to const [constParameterPointer] ballerburg-1.2.3+git20250916+ds/src/screen.c:387:10: style: Variable 'p' can be declared as pointer to const [constVariablePointer] ballerburg-1.2.3+git20250916+ds/src/screen.c:338:27: warning: Uninitialized variable: vx [uninitvar] ballerburg-1.2.3+git20250916+ds/src/screen.c:333:16: note: Assuming condition is false ballerburg-1.2.3+git20250916+ds/src/screen.c:338:27: note: Uninitialized variable: vx ballerburg-1.2.3+git20250916+ds/src/screen.c:338:31: warning: Uninitialized variable: vy [uninitvar] ballerburg-1.2.3+git20250916+ds/src/screen.c:333:16: note: Assuming condition is false ballerburg-1.2.3+git20250916+ds/src/screen.c:338:31: note: Uninitialized variable: vy ballerburg-1.2.3+git20250916+ds/src/psg.c:449:19: warning: Either the condition 'buf[i]>=16' is redundant or the array 'psg_struct.regs[15]' is accessed at index 15, which is out of bounds. [arrayIndexOutOfBoundsCond] ballerburg-1.2.3+git20250916+ds/src/psg.c:443:14: note: Assuming that condition 'buf[i]>=16' is not redundant ballerburg-1.2.3+git20250916+ds/src/psg.c:449:19: note: Array index out of bounds ballerburg-1.2.3+git20250916+ds/src/psg.c:217:19: style:inconclusive: Function 'psg_init' argument 1 names different: declaration '' definition 'mode'. [funcArgNamesDifferentUnnamed] ballerburg-1.2.3+git20250916+ds/src/psg.c:217:29: style:inconclusive: Function 'psg_init' argument 2 names different: declaration '' definition 'bits'. [funcArgNamesDifferentUnnamed] ballerburg-1.2.3+git20250916+ds/src/psg.c:217:39: style:inconclusive: Function 'psg_init' argument 3 names different: declaration '' definition 'freq'. [funcArgNamesDifferentUnnamed] ballerburg-1.2.3+git20250916+ds/src/psg.c:384:43: style:inconclusive: Function 'psg_create_samples' argument 2 names different: declaration 'psgstruct' definition 'psg'. [funcArgNamesDifferent] ballerburg-1.2.3+git20250916+ds/src/psg.h:65:43: note: Function 'psg_create_samples' argument 2 names different: declaration 'psgstruct' definition 'psg'. ballerburg-1.2.3+git20250916+ds/src/psg.c:384:43: note: Function 'psg_create_samples' argument 2 names different: declaration 'psgstruct' definition 'psg'. ballerburg-1.2.3+git20250916+ds/src/psg.c:384:43: style: Parameter 'psg' can be declared as pointer to const [constParameterPointer] ballerburg-1.2.3+git20250916+ds/src/sdlgui.c:58:35: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_PIXELFORMAT_INDEX8 [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/sdlgui.c:113:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/sdlgui.c:168:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/sdlgui.c:715:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/cannoneer.c:90:15: style: Variable 'fig' can be declared as const array [constVariable] ballerburg-1.2.3+git20250916+ds/src/sdlgui.c:649:49: style: Argument 'fx' shadows outer variable [shadowVariable] ballerburg-1.2.3+git20250916+ds/src/baller1.h:26:2: note: Shadowed variable ballerburg-1.2.3+git20250916+ds/src/sdlgui.c:649:49: note: Shadow argument ballerburg-1.2.3+git20250916+ds/src/sdlgui.c:649:57: style: Argument 'fy' shadows outer variable [shadowVariable] ballerburg-1.2.3+git20250916+ds/src/baller1.h:26:5: note: Shadowed variable ballerburg-1.2.3+git20250916+ds/src/sdlgui.c:649:57: note: Shadow argument ballerburg-1.2.3+git20250916+ds/src/sdlgui.c:375:8: style: Variable 'txt' can be declared as pointer to const [constVariablePointer] ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:247:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:561:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:737:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_BYTEORDER [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:930:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_BYTEORDER [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:1347:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SDL_BYTEORDER [valueFlowBailoutIncompleteVar] ballerburg-1.2.3+git20250916+ds/src/baller1.c:224:15: style: Variable 'pr' can be declared as const array [constVariable] ballerburg-1.2.3+git20250916+ds/src/baller1.c:372:15: style: Variable 'psp' can be declared as const array [constVariable] ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:1314:17: style: Condition 'x1>x2' is always true [knownConditionTrueFalse] ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:1302:9: note: Assuming that condition 'x1==x2' is not redundant ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:1311:9: note: Assuming condition is true ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:1312:10: note: Assuming condition is false ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:1314:17: note: Condition 'x1>x2' is always true ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:1491:69: style:inconclusive: Function 'filledCircleColor' argument 4 names different: declaration 'r' definition 'rad'. [funcArgNamesDifferent] ballerburg-1.2.3+git20250916+ds/src/sdlgfx.h:94:94: note: Function 'filledCircleColor' argument 4 names different: declaration 'r' definition 'rad'. ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:1491:69: note: Function 'filledCircleColor' argument 4 names different: declaration 'r' definition 'rad'. ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:664:17: style: Variable 'pixellast' can be declared as pointer to const [constVariablePointer] ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:857:17: style: Variable 'pixellast' can be declared as pointer to const [constVariablePointer] ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:1229:11: style: Variable 'code2' is assigned a value that is never used. [unreadVariable] ballerburg-1.2.3+git20250916+ds/src/baller2.c:677:10: error: Array 'ft[2][5]' accessed at index ft[*][5], which is out of bounds. [arrayIndexOutOfBounds] ballerburg-1.2.3+git20250916+ds/src/baller2.c:664:2: note: After for loop, t has value 5 ballerburg-1.2.3+git20250916+ds/src/baller2.c:671:42: note: Assuming condition is false ballerburg-1.2.3+git20250916+ds/src/baller2.c:677:10: note: Array index out of bounds ballerburg-1.2.3+git20250916+ds/src/baller2.c:677:23: error: Array 'ft[2][5]' accessed at index ft[*][5], which is out of bounds. [arrayIndexOutOfBounds] ballerburg-1.2.3+git20250916+ds/src/baller2.c:664:2: note: After for loop, t has value 5 ballerburg-1.2.3+git20250916+ds/src/baller2.c:671:42: note: Assuming condition is false ballerburg-1.2.3+git20250916+ds/src/baller2.c:677:23: note: Array index out of bounds ballerburg-1.2.3+git20250916+ds/src/baller2.c:279:11: style: Boolean result is used in bitwise operation. Clarify expression with parentheses. [clarifyCondition] ballerburg-1.2.3+git20250916+ds/src/baller2.c:280:11: style: Boolean result is used in bitwise operation. Clarify expression with parentheses. [clarifyCondition] ballerburg-1.2.3+git20250916+ds/src/baller2.c:281:11: style: Boolean result is used in bitwise operation. Clarify expression with parentheses. [clarifyCondition] ballerburg-1.2.3+git20250916+ds/src/baller2.c:620:36: style: Parameter 'a' can be declared as pointer to const [constParameterPointer] diff: head ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:1314:17: style: Condition 'x1>x2' is always true [knownConditionTrueFalse] ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:1302:9: note: Assuming that condition 'x1==x2' is not redundant ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:1311:9: note: Assuming condition is true ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:1312:10: note: Assuming condition is false ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:1314:17: note: Condition 'x1>x2' is always true 2.21.0 ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:1314:17: style: Condition 'x1>x2' is always true [knownConditionTrueFalse] ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:1302:9: note: Assuming that condition 'x1==x2' is not redundant ballerburg-1.2.3+git20250916+ds/src/sdlgfx.c:1314:17: note: Condition 'x1>x2' is always true DONE