2025-05-08 18:06 ftp://ftp.de.debian.org/debian/pool/main/v/vitetris/vitetris_0.59.1.orig.tar.gz cppcheck-options: --library=posix --library=gnu --library=bsd --library=motif --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-59-generic-x86_64-with-glibc2.39 python: 3.12.3 client-version: 1.3.67 compiler: g++ (Ubuntu 14.2.0-4ubuntu2~24.04) 14.2.0 cppcheck: head 2.17.0 head-info: 66c9938 (2025-05-08 13:55:11 +0200) count: 252 251 elapsed-time: 3.8 3.7 head-timing-info: old-timing-info: head results: vitetris-0.59.1/src/cfgfile.c:133:36: style: Array index 'i' is used before limits check. [arrayIndexThenCheck] vitetris-0.59.1/src/cfgfile.c:34:19: portability: Non reentrant function 'getpwuid' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getpwuid_r'. [prohibitedgetpwuidCalled] vitetris-0.59.1/src/cfgfile.c:174:28: warning: %X in format string (no. 1) requires 'unsigned int *' but the argument type is 'signed int *'. [invalidScanfArgType_int] vitetris-0.59.1/src/cfgfile.c:366:4: style: Variable 'i' is reassigned a value before the old one has been used. [redundantAssignment] vitetris-0.59.1/src/cfgfile.c:359:5: note: i is assigned vitetris-0.59.1/src/cfgfile.c:366:4: note: i is overwritten vitetris-0.59.1/src/cfgfile.c:365:1: style: Label 'mappings' is not used. [unusedLabel] vitetris-0.59.1/src/cfgfile.c:32:17: style: Variable 'pwd' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/cfgfile.c:122:33: style: Parameter 'name' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/cfgfile.c:190:17: style: Variable 'input' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/cfgfile.c:215:8: style: Variable 'p' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/cmdline.c:654:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cmd_wh [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/cmdline.c:103:50: style: Parameter 'arg' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/cmdline.c:116:49: style: Parameter 'arg' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/cmdline.c:156:43: style: Parameter 'arg' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/cmdline.c:316:45: style: Parameter 'arg' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/cmdline.c:344:47: style: Parameter 'arg' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/cmdline.c:364:48: style: Parameter 'fname' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/cmdline.c:592:46: style: Parameter 'arg' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/cmdline.c:602:46: style: Parameter 'arg' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/cmdline.c:635:43: style: Parameter 'arg' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/cmdline.c:697:8: style: Variable 'p' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/cmdline.c:625:6: error: Uninitialized variable: v [uninitvar] vitetris-0.59.1/src/draw/draw.c:407:39: style:inconclusive: Function 'redrawboard' argument 1 names different: declaration 'p' definition 'plr'. [funcArgNamesDifferent] vitetris-0.59.1/src/draw/draw.h:39:39: note: Function 'redrawboard' argument 1 names different: declaration 'p' definition 'plr'. vitetris-0.59.1/src/draw/draw.c:407:39: note: Function 'redrawboard' argument 1 names different: declaration 'p' definition 'plr'. vitetris-0.59.1/src/draw/draw.c:544:21: style:inconclusive: Function 'upd_screen' argument 1 names different: declaration 'win' definition 'i'. [funcArgNamesDifferent] vitetris-0.59.1/src/draw/draw.h:57:21: note: Function 'upd_screen' argument 1 names different: declaration 'win' definition 'i'. vitetris-0.59.1/src/draw/draw.c:544:21: note: Function 'upd_screen' argument 1 names different: declaration 'win' definition 'i'. vitetris-0.59.1/src/game/tetris.c:18:27: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable RAND_MAX [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/game/tetris.c:56:25: warning: Function 'hitbtm' argument order different: declaration 'piece, p' definition 'p, plr' [funcArgOrderDifferent] vitetris-0.59.1/src/game/tetris.h:111:25: note: Function 'hitbtm' argument order different: declaration 'piece, p' definition 'p, plr' vitetris-0.59.1/src/game/tetris.c:56:25: note: Function 'hitbtm' argument order different: declaration 'piece, p' definition 'p, plr' vitetris-0.59.1/src/game/tetris.c:224:31: style:inconclusive: Function 'lockpiece' argument 1 names different: declaration 'p' definition 'plr'. [funcArgNamesDifferent] vitetris-0.59.1/src/game/tetris.h:112:31: note: Function 'lockpiece' argument 1 names different: declaration 'p' definition 'plr'. vitetris-0.59.1/src/game/tetris.c:224:31: note: Function 'lockpiece' argument 1 names different: declaration 'p' definition 'plr'. vitetris-0.59.1/src/game/tetris.c:298:31: style:inconclusive: Function 'moveright' argument 1 names different: declaration 'p' definition 'plr'. [funcArgNamesDifferent] vitetris-0.59.1/src/game/tetris.h:113:31: note: Function 'moveright' argument 1 names different: declaration 'p' definition 'plr'. vitetris-0.59.1/src/game/tetris.c:298:31: note: Function 'moveright' argument 1 names different: declaration 'p' definition 'plr'. vitetris-0.59.1/src/game/tetris.c:358:30: style:inconclusive: Function 'moveleft' argument 1 names different: declaration 'p' definition 'plr'. [funcArgNamesDifferent] vitetris-0.59.1/src/game/tetris.h:114:30: note: Function 'moveleft' argument 1 names different: declaration 'p' definition 'plr'. vitetris-0.59.1/src/game/tetris.c:358:30: note: Function 'moveleft' argument 1 names different: declaration 'p' definition 'plr'. vitetris-0.59.1/src/game/tetris.c:394:29: style:inconclusive: Function 'movedown' argument 1 names different: declaration 'p' definition 'plr'. [funcArgNamesDifferent] vitetris-0.59.1/src/game/tetris.h:115:29: note: Function 'movedown' argument 1 names different: declaration 'p' definition 'plr'. vitetris-0.59.1/src/game/tetris.c:394:29: note: Function 'movedown' argument 1 names different: declaration 'p' definition 'plr'. vitetris-0.59.1/src/game/tetris.c:481:28: style:inconclusive: Function 'rotate' argument 1 names different: declaration 'p' definition 'plr'. [funcArgNamesDifferent] vitetris-0.59.1/src/game/tetris.h:116:28: note: Function 'rotate' argument 1 names different: declaration 'p' definition 'plr'. vitetris-0.59.1/src/game/tetris.c:481:28: note: Function 'rotate' argument 1 names different: declaration 'p' definition 'plr'. vitetris-0.59.1/src/game/tetris.c:657:29: style:inconclusive: Function 'harddrop' argument 1 names different: declaration 'p' definition 'plr'. [funcArgNamesDifferent] vitetris-0.59.1/src/game/tetris.h:117:29: note: Function 'harddrop' argument 1 names different: declaration 'p' definition 'plr'. vitetris-0.59.1/src/game/tetris.c:657:29: note: Function 'harddrop' argument 1 names different: declaration 'p' definition 'plr'. vitetris-0.59.1/src/game/tetris.c:813:24: style:inconclusive: Function 'startgame_wait' argument 1 names different: declaration 'flags' definition 'n'. [funcArgNamesDifferent] vitetris-0.59.1/src/game/tetris.h:122:24: note: Function 'startgame_wait' argument 1 names different: declaration 'flags' definition 'n'. vitetris-0.59.1/src/game/tetris.c:813:24: note: Function 'startgame_wait' argument 1 names different: declaration 'flags' definition 'n'. vitetris-0.59.1/src/game/tetris.c:56:25: style: Parameter 'p' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/game/tetris.c:58:18: style: Variable 'board' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/game/tetris.c:266:39: style: Parameter 'p' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/game/tetris.c:266:58: style: Parameter 'board' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/game/tetris.c:328:38: style: Parameter 'p' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/game/tetris.c:328:57: style: Parameter 'board' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/game/tetris.c:437:61: style: Parameter 'board' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/game/tetris.c:612:36: style: Parameter 'p' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/game/tetris.c:673:8: style: Variable 'y' is assigned a value that is never used. [unreadVariable] vitetris-0.59.1/src/game/tetris2p.c:592:19: style: Expression '(X & 0x0) == 0x28' is always false. [comparisonError] vitetris-0.59.1/src/game/tetris2p.c:440:28: style: Condition '!wait_next()' is always false [knownConditionTrueFalse] vitetris-0.59.1/src/game/tetris2p.c:440:38: note: Calling function 'wait_next' returns 1 vitetris-0.59.1/src/game/tetris2p.c:440:28: note: Condition '!wait_next()' is always false vitetris-0.59.1/src/game/tetris2p.c:501:22: style: Condition '!gameover_timeout(&gameover)' is always false [knownConditionTrueFalse] vitetris-0.59.1/src/game/tetris2p.c:501:39: note: Calling function 'gameover_timeout' returns 1 vitetris-0.59.1/src/game/tetris2p.c:501:22: note: Condition '!gameover_timeout(&gameover)' is always false vitetris-0.59.1/src/game/tetris2p.c:431:10: warning: If memory allocation fails, then there is a possible null pointer dereference: tetrom_seq [nullPointerOutOfMemory] vitetris-0.59.1/src/game/tetris2p.c:430:22: note: Assuming allocation function fails vitetris-0.59.1/src/game/tetris2p.c:430:22: note: Assignment 'tetrom_seq=malloc(4)', assigned value is 0 vitetris-0.59.1/src/game/tetris2p.c:431:10: note: Null pointer dereference vitetris-0.59.1/src/game/tetris2p.c:52:36: style: Parameter 'plr' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/game/tetris2p.c:75:42: style: Parameter 'tet' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/game/tetris2p.c:206:15: style: Variable 'p' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/game/tetris2p.c:275:38: style: Parameter 'p' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/game/tetris2p.c:355:19: style: Variable 'tet' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/game/tetris2p.c:447:34: style: Parameter 'gameover' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/game/wonlost.c:56:23: style: Parameter 'end' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/game/wonlost.c:107:12: style: Variable 'p' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/game/wonlost.c:106:12: style: Unused variable: val [unusedVariable] vitetris-0.59.1/src/hiscore.c:361:26: style:inconclusive: Function 'gethiscorelist' argument 1 names different: declaration 'buf' definition 's'. [funcArgNamesDifferent] vitetris-0.59.1/src/hiscore.h:28:26: note: Function 'gethiscorelist' argument 1 names different: declaration 'buf' definition 's'. vitetris-0.59.1/src/hiscore.c:361:26: note: Function 'gethiscorelist' argument 1 names different: declaration 'buf' definition 's'. vitetris-0.59.1/src/hiscore.c:18:40: style: Parameter 'hs' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/hiscore.c:152:42: style: Parameter 'hs' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/hiscore.c:364:18: style: Variable 'hs' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/input/escseq.c:124:5: warning: If memory allocation fails, then there is a possible null pointer dereference: e [nullPointerOutOfMemory] vitetris-0.59.1/src/input/escseq.c:123:25: note: Assuming allocation function fails vitetris-0.59.1/src/input/escseq.c:123:17: note: Assignment 'e=e->next=malloc(sizeof(struct escseq))', assigned value is 0 vitetris-0.59.1/src/input/escseq.c:124:5: note: Null pointer dereference vitetris-0.59.1/src/input/escseq.c:130:9: warning: If memory allocation fails, then there is a possible null pointer dereference: e [nullPointerOutOfMemory] vitetris-0.59.1/src/input/escseq.c:123:25: note: Assuming allocation function fails vitetris-0.59.1/src/input/escseq.c:123:17: note: Assignment 'e=e->next=malloc(sizeof(struct escseq))', assigned value is 0 vitetris-0.59.1/src/input/escseq.c:130:9: note: Null pointer dereference vitetris-0.59.1/src/input/escseq.c:131:2: warning: If memory allocation fails, then there is a possible null pointer dereference: e [nullPointerOutOfMemory] vitetris-0.59.1/src/input/escseq.c:123:25: note: Assuming allocation function fails vitetris-0.59.1/src/input/escseq.c:123:17: note: Assignment 'e=e->next=malloc(sizeof(struct escseq))', assigned value is 0 vitetris-0.59.1/src/input/escseq.c:131:2: note: Null pointer dereference vitetris-0.59.1/src/input/inp_allegro.c:33:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable JOY_TYPE_AUTODETECT [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_allegro.c:48:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable shift_keys [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_allegro.c:69:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KEY_MAX [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_allegro.c:98:35: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KEY_9_PAD [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_allegro.c:112:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KEY_MAX [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_allegro.c:167:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KEY_ENTER [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_allegro.c:207:35: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KEY_9_PAD [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_allegro.c:232:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KEY_MAX [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_allegro.c:240:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KEY_MAX [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_allegro.c:260:35: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KEY_9_PAD [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_allegro.c:275:6: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable num_joysticks [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_allegro.c:294:6: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable joy [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_allegro.c:327:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable joy [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_allegro.c:352:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable num_joysticks [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_allegro.c:376:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable joy [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_allegro.c:391:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable joy [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_allegro.c:338:29: style:inconclusive: Function 'js_pressbtn' argument 2 names different: declaration 'btn' definition 'b'. [funcArgNamesDifferent] vitetris-0.59.1/src/input/joystick.h:19:29: note: Function 'js_pressbtn' argument 2 names different: declaration 'btn' definition 'b'. vitetris-0.59.1/src/input/inp_allegro.c:338:29: note: Function 'js_pressbtn' argument 2 names different: declaration 'btn' definition 'b'. vitetris-0.59.1/src/input/inp_allegro.c:343:31: style:inconclusive: Function 'js_releasebtn' argument 2 names different: declaration 'btn' definition 'b'. [funcArgNamesDifferent] vitetris-0.59.1/src/input/joystick.h:20:31: note: Function 'js_releasebtn' argument 2 names different: declaration 'btn' definition 'b'. vitetris-0.59.1/src/input/inp_allegro.c:343:31: note: Function 'js_releasebtn' argument 2 names different: declaration 'btn' definition 'b'. vitetris-0.59.1/src/input/inp_allegro.c:65:8: style: Variable 'p' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/input/inp_allegro.c:350:13: style: Variable 'js' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/input/inp_allegro.c:66:6: style: Unused variable: tm [unusedVariable] vitetris-0.59.1/src/input/inp_curses.c:31:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ERR [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_curses.c:75:6: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable KEY_C1 [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_curses.c:69:8: style: Variable 'numpad' can be declared as const array [constVariable] vitetris-0.59.1/src/input/inp_unixterm.c:28:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ICANON [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/inp_unixterm.c:37:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable TCSANOW [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/input.c:232:32: style:inconclusive: Function 'setkeymapping' argument 2 names different: declaration 'keypress' definition 'keypr'. [funcArgNamesDifferent] vitetris-0.59.1/src/input/input.h:59:32: note: Function 'setkeymapping' argument 2 names different: declaration 'keypress' definition 'keypr'. vitetris-0.59.1/src/input/input.c:232:32: note: Function 'setkeymapping' argument 2 names different: declaration 'keypress' definition 'keypr'. vitetris-0.59.1/src/input/input.c:274:40: style:inconclusive: Function 'getkeyfor_str' argument 2 names different: declaration 'keypress' definition 'keypr'. [funcArgNamesDifferent] vitetris-0.59.1/src/input/input.h:60:40: note: Function 'getkeyfor_str' argument 2 names different: declaration 'keypress' definition 'keypr'. vitetris-0.59.1/src/input/input.c:274:40: note: Function 'getkeyfor_str' argument 2 names different: declaration 'keypress' definition 'keypr'. vitetris-0.59.1/src/input/input.c:301:27: style:inconclusive: Function 'processkey_ingame' argument 1 names different: declaration 'keypress' definition 'key'. [funcArgNamesDifferent] vitetris-0.59.1/src/input/input.h:67:27: note: Function 'processkey_ingame' argument 1 names different: declaration 'keypress' definition 'key'. vitetris-0.59.1/src/input/input.c:301:27: note: Function 'processkey_ingame' argument 1 names different: declaration 'keypress' definition 'key'. vitetris-0.59.1/src/input/joylinux.c:39:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDONLY [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/joylinux.c:84:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable js_event [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/joylinux.c:98:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDONLY [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/joylinux.c:226:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable js_event [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/joylinux.c:191:15: portability: Shifting a negative value is technically undefined behaviour [shiftNegativeLHS] vitetris-0.59.1/src/input/joylinux.c:259:29: style:inconclusive: Function 'js_pressbtn' argument 2 names different: declaration 'btn' definition 'b'. [funcArgNamesDifferent] vitetris-0.59.1/src/input/joystick.h:19:29: note: Function 'js_pressbtn' argument 2 names different: declaration 'btn' definition 'b'. vitetris-0.59.1/src/input/joylinux.c:259:29: note: Function 'js_pressbtn' argument 2 names different: declaration 'btn' definition 'b'. vitetris-0.59.1/src/input/joylinux.c:271:31: style:inconclusive: Function 'js_releasebtn' argument 2 names different: declaration 'btn' definition 'b'. [funcArgNamesDifferent] vitetris-0.59.1/src/input/joystick.h:20:31: note: Function 'js_releasebtn' argument 2 names different: declaration 'btn' definition 'b'. vitetris-0.59.1/src/input/joylinux.c:271:31: note: Function 'js_releasebtn' argument 2 names different: declaration 'btn' definition 'b'. vitetris-0.59.1/src/input/joylinux.c:200:41: style: Parameter 'e' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/input/joylinux.c:278:13: style: Variable 'js' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/input/keyboard.c:174:9: style: Return value 'c' is always true [knownConditionTrueFalse] vitetris-0.59.1/src/input/keyboard.c:169:6: note: Assuming that condition '!c' is not redundant vitetris-0.59.1/src/input/keyboard.c:174:9: note: Return value 'c' is always true vitetris-0.59.1/src/input/keyboard.c:177:52: style:inconclusive: Function 'kb_setmapping' argument 2 names different: declaration 'keypress' definition 'keypr'. [funcArgNamesDifferent] vitetris-0.59.1/src/input/keyboard.h:18:52: note: Function 'kb_setmapping' argument 2 names different: declaration 'keypress' definition 'keypr'. vitetris-0.59.1/src/input/keyboard.c:177:52: note: Function 'kb_setmapping' argument 2 names different: declaration 'keypress' definition 'keypr'. vitetris-0.59.1/src/input/keyboard.c:223:22: style:inconclusive: Function 'kb_getkeyfor' argument 1 names different: declaration 'keypress' definition 'keypr'. [funcArgNamesDifferent] vitetris-0.59.1/src/input/keyboard.h:21:22: note: Function 'kb_getkeyfor' argument 1 names different: declaration 'keypress' definition 'keypr'. vitetris-0.59.1/src/input/keyboard.c:223:22: note: Function 'kb_getkeyfor' argument 1 names different: declaration 'keypress' definition 'keypr'. vitetris-0.59.1/src/input/playerin.c:24:32: error: Uninitialized variable: v [uninitvar] vitetris-0.59.1/src/input/select.c:11:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/input/select.c:19:32: style:inconclusive: Function 'waitinput' argument 2 names different: declaration 'msec' definition 'ms'. [funcArgNamesDifferent] vitetris-0.59.1/src/input/input.h:52:32: note: Function 'waitinput' argument 2 names different: declaration 'msec' definition 'ms'. vitetris-0.59.1/src/input/select.c:19:32: note: Function 'waitinput' argument 2 names different: declaration 'msec' definition 'ms'. vitetris-0.59.1/src/lang.c:44:22: style:inconclusive: Function 'spellword' argument 1 names different: declaration 'word' definition 's'. [funcArgNamesDifferent] vitetris-0.59.1/src/lang.h:8:22: note: Function 'spellword' argument 1 names different: declaration 'word' definition 's'. vitetris-0.59.1/src/lang.c:44:22: note: Function 'spellword' argument 1 names different: declaration 'word' definition 's'. vitetris-0.59.1/src/menu/dropdown.c:92:55: style:inconclusive: Function 'selectitem' argument 4 names different: declaration 'keypress' definition 'k'. [funcArgNamesDifferent] vitetris-0.59.1/src/menu/menu.h:65:55: note: Function 'selectitem' argument 4 names different: declaration 'keypress' definition 'k'. vitetris-0.59.1/src/menu/dropdown.c:92:55: note: Function 'selectitem' argument 4 names different: declaration 'keypress' definition 'k'. vitetris-0.59.1/src/menu/gamemenu.c:126:17: style: Variable 'p' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/menu/gameover.c:213:56: error: Found an exit path from function with non-void return type that has missing return statement [missingReturn] vitetris-0.59.1/src/menu/gameover.c:70:8: style: Variable 'p' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/menu/gm_sock.c:69:12: style: Variable 'keypr' is assigned a value that is never used. [unreadVariable] vitetris-0.59.1/src/menu/inputdev.c:77:16: style: Same expression on both sides of '&&' because 'v.integ' and 'v.integ!=0' represent the same value. [knownConditionTrueFalse] vitetris-0.59.1/src/menu/inputdev.c:145:37: style:inconclusive: Function 'inputsetup_menuitem' argument 2 names different: declaration 'p' definition 'pos'. [funcArgNamesDifferent] vitetris-0.59.1/src/menu/internal.h:8:37: note: Function 'inputsetup_menuitem' argument 2 names different: declaration 'p' definition 'pos'. vitetris-0.59.1/src/menu/inputdev.c:145:37: note: Function 'inputsetup_menuitem' argument 2 names different: declaration 'p' definition 'pos'. vitetris-0.59.1/src/menu/inputdev.c:44:8: style: Variable 'p' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/menu/inputdev.c:103:33: error: Uninitialized variable: v [uninitvar] vitetris-0.59.1/src/menu/inputset.c:53:26: style:inconclusive: Function 'inputsetup_menu' argument 1 names different: declaration 'player' definition 'pl'. [funcArgNamesDifferent] vitetris-0.59.1/src/menu/menu.h:78:26: note: Function 'inputsetup_menu' argument 1 names different: declaration 'player' definition 'pl'. vitetris-0.59.1/src/menu/inputset.c:53:26: note: Function 'inputsetup_menu' argument 1 names different: declaration 'player' definition 'pl'. vitetris-0.59.1/src/menu/inputset.c:127:25: style:inconclusive: Function 'inputsetup_box' argument 1 names different: declaration 'player' definition 'pl'. [funcArgNamesDifferent] vitetris-0.59.1/src/menu/menu.h:79:25: note: Function 'inputsetup_box' argument 1 names different: declaration 'player' definition 'pl'. vitetris-0.59.1/src/menu/inputset.c:127:25: note: Function 'inputsetup_box' argument 1 names different: declaration 'player' definition 'pl'. vitetris-0.59.1/src/menu/men_allegro.c:128:35: style: Parameter 'pos' can be declared as pointer to const. However it seems that 'op_handler' is a callback function, if 'pos' is declared with const you might also need to cast function pointer(s). [constParameterCallback] vitetris-0.59.1/src/menu/men_allegro.c:185:25: note: You might need to cast the function pointer here vitetris-0.59.1/src/menu/men_allegro.c:128:35: note: Parameter 'pos' can be declared as pointer to const vitetris-0.59.1/src/menu/men_ansi.c:96:35: style: Parameter 'pos' can be declared as pointer to const. However it seems that 'op_handler' is a callback function, if 'pos' is declared with const you might also need to cast function pointer(s). [constParameterCallback] vitetris-0.59.1/src/menu/men_ansi.c:132:25: note: You might need to cast the function pointer here vitetris-0.59.1/src/menu/men_ansi.c:96:35: note: Parameter 'pos' can be declared as pointer to const vitetris-0.59.1/src/menu/men_curses.c:181:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable TRUE [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/menu/men_curses.c:146:35: style: Parameter 'pos' can be declared as pointer to const. However it seems that 'op_handler' is a callback function, if 'pos' is declared with const you might also need to cast function pointer(s). [constParameterCallback] vitetris-0.59.1/src/menu/men_curses.c:193:25: note: You might need to cast the function pointer here vitetris-0.59.1/src/menu/men_curses.c:146:35: note: Parameter 'pos' can be declared as pointer to const vitetris-0.59.1/src/menu/menucore.c:210:30: style: Condition 'j-h>=0' is always true [knownConditionTrueFalse] vitetris-0.59.1/src/menu/menucore.c:203:8: note: Assuming that condition 'j=0' is always true vitetris-0.59.1/src/menu/menucore.c:40:49: style:inconclusive: Function 'printmenuitem_options' argument 2 names different: declaration 'sel_index' definition 'sel'. [funcArgNamesDifferent] vitetris-0.59.1/src/menu/menu.h:22:49: note: Function 'printmenuitem_options' argument 2 names different: declaration 'sel_index' definition 'sel'. vitetris-0.59.1/src/menu/menucore.c:40:49: note: Function 'printmenuitem_options' argument 2 names different: declaration 'sel_index' definition 'sel'. vitetris-0.59.1/src/menu/menucore.c:256:25: style:inconclusive: Function 'rarrow_menuitem' argument 1 names different: declaration 'keypress' definition 'k'. [funcArgNamesDifferent] vitetris-0.59.1/src/menu/menu.h:55:25: note: Function 'rarrow_menuitem' argument 1 names different: declaration 'keypress' definition 'k'. vitetris-0.59.1/src/menu/menucore.c:256:25: note: Function 'rarrow_menuitem' argument 1 names different: declaration 'keypress' definition 'k'. vitetris-0.59.1/src/menu/menucore.c:256:33: style:inconclusive: Function 'rarrow_menuitem' argument 2 names different: declaration 'pos' definition 'p'. [funcArgNamesDifferent] vitetris-0.59.1/src/menu/menu.h:55:40: note: Function 'rarrow_menuitem' argument 2 names different: declaration 'pos' definition 'p'. vitetris-0.59.1/src/menu/menucore.c:256:33: note: Function 'rarrow_menuitem' argument 2 names different: declaration 'pos' definition 'p'. vitetris-0.59.1/src/menu/menucore.c:256:33: style: Parameter 'p' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/menu/menucore.c:43:16: style: Variable 'p' is assigned a value that is never used. [unreadVariable] vitetris-0.59.1/src/menu/menucore.c:144:9: style: Variable 'm' is assigned a value that is never used. [unreadVariable] vitetris-0.59.1/src/menu/netplay.c:63:34: style: Parameter 'pos' can be declared as pointer to const. However it seems that 'textfield' is a callback function, if 'pos' is declared with const you might also need to cast function pointer(s). [constParameterCallback] vitetris-0.59.1/src/menu/netplay.c:219:29: note: You might need to cast the function pointer here vitetris-0.59.1/src/menu/netplay.c:63:34: note: Parameter 'pos' can be declared as pointer to const vitetris-0.59.1/src/menu/optsmenu.c:138:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable rarrow_menuitem [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/menu/optsmenu.c:73:34: style: Parameter 'pos' can be declared as pointer to const. However it seems that 'op_tcolor' is a callback function, if 'pos' is declared with const you might also need to cast function pointer(s). [constParameterCallback] vitetris-0.59.1/src/menu/optsmenu.c:102:36: note: You might need to cast the function pointer here vitetris-0.59.1/src/menu/optsmenu.c:73:34: note: Parameter 'pos' can be declared as pointer to const vitetris-0.59.1/src/menu/optsmenu.c:92:38: style: Parameter 'pos' can be declared as pointer to const. However it seems that 'op_tcolor_gt4' is a callback function, if 'pos' is declared with const you might also need to cast function pointer(s). [constParameterCallback] vitetris-0.59.1/src/menu/optsmenu.c:103:18: note: You might need to cast the function pointer here vitetris-0.59.1/src/menu/optsmenu.c:92:38: note: Parameter 'pos' can be declared as pointer to const vitetris-0.59.1/src/menu/startup.c:43:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable gm_mode [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/comm.c:17:25: style:inconclusive: Function 'sock_sendbyte' argument 1 names different: declaration 'byte' definition 'b'. [funcArgNamesDifferent] vitetris-0.59.1/src/netw/sock.h:70:25: note: Function 'sock_sendbyte' argument 1 names different: declaration 'byte' definition 'b'. vitetris-0.59.1/src/netw/comm.c:17:25: note: Function 'sock_sendbyte' argument 1 names different: declaration 'byte' definition 'b'. vitetris-0.59.1/src/netw/comm_inet.c:21:42: style: Parameter 'p' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/netw/comm_inet.c:57:6: warning: Uninitialized variable: n [uninitvar] vitetris-0.59.1/src/netw/comm_inet.c:55:15: note: Assuming condition is false vitetris-0.59.1/src/netw/comm_inet.c:57:6: note: Uninitialized variable: n vitetris-0.59.1/src/netw/comm_inet.c:39:7: style: Unused variable: b [unusedVariable] vitetris-0.59.1/src/netw/gameserver.c:49:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable sockaddr_in [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/gameserver.c:66:50: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/gameserver.c:111:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/gameserver.c:128:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/gameserver.c:150:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/gameserver.c:551:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/gameserver.c:584:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/gameserver.c:498:32: style: Parameter 'fdset' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/netw/inet.c:37:30: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable sockaddr_in [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/inet.c:53:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PF_INET [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/inet.c:83:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PF_INET [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/inet.c:95:46: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_INET [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/inet.c:23:22: style: Obsolescent function 'gethostbyname' called. It is recommended to use 'getaddrinfo' instead. [prohibitedgethostbynameCalled] vitetris-0.59.1/src/netw/inet.c:64:3: warning: %d in format string (no. 1) requires 'int' but the argument type is 'unsigned int'. [invalidPrintfArgType_sint] vitetris-0.59.1/src/netw/inet.c:68:2: warning: %d in format string (no. 2) requires 'int' but the argument type is 'unsigned int'. [invalidPrintfArgType_sint] vitetris-0.59.1/src/netw/inet.c:43:4: error: Memory leak: addr [memleak] vitetris-0.59.1/src/netw/inet.c:38:2: warning: If memory allocation fails, then there is a possible null pointer dereference: addr [nullPointerOutOfMemory] vitetris-0.59.1/src/netw/inet.c:37:15: note: Assuming allocation function fails vitetris-0.59.1/src/netw/inet.c:37:15: note: Assignment 'addr=malloc(sizeof(struct sockaddr_in))', assigned value is 0 vitetris-0.59.1/src/netw/inet.c:38:2: note: Null pointer dereference vitetris-0.59.1/src/netw/inet.c:39:2: warning: If memory allocation fails, then there is a possible null pointer dereference: addr [nullPointerOutOfMemory] vitetris-0.59.1/src/netw/inet.c:37:15: note: Assuming allocation function fails vitetris-0.59.1/src/netw/inet.c:37:15: note: Assignment 'addr=malloc(sizeof(struct sockaddr_in))', assigned value is 0 vitetris-0.59.1/src/netw/inet.c:39:2: note: Null pointer dereference vitetris-0.59.1/src/netw/inet.c:34:18: style: Variable 'h' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/netw/no_inet.c:7:42: style: Parameter 'p' can be declared as pointer to const [constParameterPointer] vitetris-0.59.1/src/netw/socket.c:48:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/socket.c:99:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SOCK_STREAM [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/socket.c:147:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/socket.c:194:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/socket.c:207:44: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_UNIX [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/socket.c:210:18: style:inconclusive: Boolean expression '(128|2)!=(128|2)' is used in bitwise operation. Did you mean '&&'? [bitwiseOnBoolean] vitetris-0.59.1/src/netw/socket.c:210:6: style: Suspicious condition (bitwise operator + comparison); Clarify expression with parentheses. [clarifyCondition] vitetris-0.59.1/src/netw/socket.c:210:18: style: Boolean result is used in bitwise operation. Clarify expression with parentheses. [clarifyCondition] vitetris-0.59.1/src/netw/socket.c:66:9: warning: If memory allocation fails, then there is a possible null pointer dereference: msg [nullPointerOutOfMemory] vitetris-0.59.1/src/netw/socket.c:65:24: note: Assuming allocation function fails vitetris-0.59.1/src/netw/socket.c:65:24: note: Assignment 'msg=malloc(n+strlen(s)+10)', assigned value is 0 vitetris-0.59.1/src/netw/socket.c:66:9: note: Null pointer dereference vitetris-0.59.1/src/netw/socket.c:67:9: warning: If memory allocation fails, then there is a possible null pointer dereference: msg [nullPointerOutOfMemory] vitetris-0.59.1/src/netw/socket.c:65:24: note: Assuming allocation function fails vitetris-0.59.1/src/netw/socket.c:65:24: note: Assignment 'msg=malloc(n+strlen(s)+10)', assigned value is 0 vitetris-0.59.1/src/netw/socket.c:67:9: note: Null pointer dereference vitetris-0.59.1/src/netw/socket.c:210:45: style: Same expression on both sides of '!='. [duplicateExpression] vitetris-0.59.1/src/netw/tty_socket.c:56:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_CREAT [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/tty_socket.c:87:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/tty_socket.c:175:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable sun_path [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/tty_socket.c:188:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_WRONLY [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/tty_socket.c:202:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable sun_path [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/tty_socket.c:212:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PF_UNIX [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/tty_socket.c:264:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable sun_path [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/netw/tty_socket.c:23:12: portability: Non reentrant function 'ttyname' called. For threadsafe applications it is recommended to use the reentrant replacement function 'ttyname_r'. [prohibitedttynameCalled] vitetris-0.59.1/src/netw/tty_socket.c:69:11: portability: Non reentrant function 'getpwuid' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getpwuid_r'. [prohibitedgetpwuidCalled] vitetris-0.59.1/src/netw/tty_socket.c:152:23: portability: Non reentrant function 'readdir' called. For threadsafe applications it is recommended to use the reentrant replacement function 'readdir_r'. [prohibitedreaddirCalled] vitetris-0.59.1/src/netw/tty_socket.c:168:7: style: Condition '!*tty' is always false [knownConditionTrueFalse] vitetris-0.59.1/src/netw/tty_socket.c:44:19: warning: Either the condition 'tty' is redundant or there is possible null pointer dereference: tty. [nullPointerRedundantCheck] vitetris-0.59.1/src/netw/tty_socket.c:223:16: note: Assuming that condition 'tty' is not redundant vitetris-0.59.1/src/netw/tty_socket.c:215:11: note: Calling function 'getaddr', 1st argument 'tty' value is 0 vitetris-0.59.1/src/netw/tty_socket.c:171:18: note: Calling function 'getfname', 2nd argument 'tty' value is 0 vitetris-0.59.1/src/netw/tty_socket.c:44:19: note: Null pointer dereference vitetris-0.59.1/src/netw/tty_socket.c:175:16: error: Null pointer dereference: (struct sockaddr_un*)0 [nullPointer] vitetris-0.59.1/src/netw/tty_socket.c:177:2: warning: If memory allocation fails, then there is a possible null pointer dereference: addr [nullPointerOutOfMemory] vitetris-0.59.1/src/netw/tty_socket.c:175:15: note: Assuming allocation function fails vitetris-0.59.1/src/netw/tty_socket.c:175:15: note: Assignment 'addr=malloc(((unsigned long)((struct sockaddr_un*)0)->sun_path)+strlen(fname)+1)', assigned value is 0 vitetris-0.59.1/src/netw/tty_socket.c:177:2: note: Null pointer dereference vitetris-0.59.1/src/netw/tty_socket.c:178:9: warning: If memory allocation fails, then there is a possible null pointer dereference: addr [nullPointerOutOfMemory] vitetris-0.59.1/src/netw/tty_socket.c:175:15: note: Assuming allocation function fails vitetris-0.59.1/src/netw/tty_socket.c:175:15: note: Assignment 'addr=malloc(((unsigned long)((struct sockaddr_un*)0)->sun_path)+strlen(fname)+1)', assigned value is 0 vitetris-0.59.1/src/netw/tty_socket.c:178:9: note: Null pointer dereference vitetris-0.59.1/src/netw/tty_socket.c:203:9: warning: If memory allocation fails, then there is a possible null pointer dereference: s [nullPointerOutOfMemory] vitetris-0.59.1/src/netw/tty_socket.c:202:18: note: Assuming allocation function fails vitetris-0.59.1/src/netw/tty_socket.c:202:18: note: Assignment 's=malloc(strlen(((struct sockaddr_un*)(sock_addr))->sun_path)+9)', assigned value is 0 vitetris-0.59.1/src/netw/tty_socket.c:203:9: note: Null pointer dereference vitetris-0.59.1/src/netw/tty_socket.c:204:9: warning: If memory allocation fails, then there is a possible null pointer dereference: s [nullPointerOutOfMemory] vitetris-0.59.1/src/netw/tty_socket.c:202:18: note: Assuming allocation function fails vitetris-0.59.1/src/netw/tty_socket.c:202:18: note: Assignment 's=malloc(strlen(((struct sockaddr_un*)(sock_addr))->sun_path)+9)', assigned value is 0 vitetris-0.59.1/src/netw/tty_socket.c:204:9: note: Null pointer dereference vitetris-0.59.1/src/netw/tty_socket.c:216:10: error: Null pointer dereference: (struct sockaddr_un*)0 [nullPointer] vitetris-0.59.1/src/netw/tty_socket.c:23:8: style: Variable 's' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/netw/tty_socket.c:65:17: style: Variable 'pw' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/netw/tty_socket.c:146:17: style: Variable 'e' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/netw/tty_socket.c:235:14: style: Variable 'p' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/netw/tty_socket.c:97:20: warning: Uninitialized variable: n [uninitvar] vitetris-0.59.1/src/netw/tty_socket.c:85:11: note: Assuming condition is false vitetris-0.59.1/src/netw/tty_socket.c:97:20: note: Uninitialized variable: n vitetris-0.59.1/src/options.c:41:12: style: Condition 'n<4' is always true [knownConditionTrueFalse] vitetris-0.59.1/src/options.c:32:8: note: Assuming that condition 'n>=4' is not redundant vitetris-0.59.1/src/options.c:37:40: note: Assuming condition is false vitetris-0.59.1/src/options.c:41:12: note: Condition 'n<4' is always true vitetris-0.59.1/src/options.c:67:10: warning: If memory allocation fails, then there is a possible null pointer dereference: s [nullPointerOutOfMemory] vitetris-0.59.1/src/options.c:66:13: note: Assuming allocation function fails vitetris-0.59.1/src/options.c:66:13: note: Assignment 's=malloc(sizeof(struct sect))', assigned value is 0 vitetris-0.59.1/src/options.c:67:10: note: Null pointer dereference vitetris-0.59.1/src/options.c:68:3: warning: If memory allocation fails, then there is a possible null pointer dereference: s [nullPointerOutOfMemory] vitetris-0.59.1/src/options.c:66:13: note: Assuming allocation function fails vitetris-0.59.1/src/options.c:66:13: note: Assignment 's=malloc(sizeof(struct sect))', assigned value is 0 vitetris-0.59.1/src/options.c:68:3: note: Null pointer dereference vitetris-0.59.1/src/options.c:69:3: warning: If memory allocation fails, then there is a possible null pointer dereference: s [nullPointerOutOfMemory] vitetris-0.59.1/src/options.c:66:13: note: Assuming allocation function fails vitetris-0.59.1/src/options.c:66:13: note: Assignment 's=malloc(sizeof(struct sect))', assigned value is 0 vitetris-0.59.1/src/options.c:69:3: note: Null pointer dereference vitetris-0.59.1/src/options.c:86:2: warning: If memory allocation fails, then there is a possible null pointer dereference: o [nullPointerOutOfMemory] vitetris-0.59.1/src/options.c:85:12: note: Assuming allocation function fails vitetris-0.59.1/src/options.c:85:12: note: Assignment 'o=malloc(n+m)', assigned value is 0 vitetris-0.59.1/src/options.c:86:2: note: Null pointer dereference vitetris-0.59.1/src/options.c:99:2: warning: If memory allocation fails, then there is a possible null pointer dereference: o [nullPointerOutOfMemory] vitetris-0.59.1/src/options.c:85:12: note: Assuming allocation function fails vitetris-0.59.1/src/options.c:85:12: note: Assignment 'o=malloc(n+m)', assigned value is 0 vitetris-0.59.1/src/options.c:99:2: note: Null pointer dereference vitetris-0.59.1/src/options.c:100:9: warning: If memory allocation fails, then there is a possible null pointer dereference: o [nullPointerOutOfMemory] vitetris-0.59.1/src/options.c:85:12: note: Assuming allocation function fails vitetris-0.59.1/src/options.c:85:12: note: Assignment 'o=malloc(n+m)', assigned value is 0 vitetris-0.59.1/src/options.c:100:9: note: Null pointer dereference vitetris-0.59.1/src/options.c:178:75: style:inconclusive: Function 'setoption' argument 4 names different: declaration 'type' definition 'tp'. [funcArgNamesDifferent] vitetris-0.59.1/src/options.h:35:71: note: Function 'setoption' argument 4 names different: declaration 'type' definition 'tp'. vitetris-0.59.1/src/options.c:178:75: note: Function 'setoption' argument 4 names different: declaration 'type' definition 'tp'. vitetris-0.59.1/src/textgfx/allegro.c:140:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GFX_AUTODETECT_WINDOWED [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/allegro.c:185:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable screen [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/allegro.c:224:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable application_name [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/allegro.c:284:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable font [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/allegro.c:298:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable screen [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/allegro.c:362:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable screen [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/allegro.c:488:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable font [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/allegro.c:103:3: warning:inconclusive: The buffer 'fname' may not be null-terminated after the call to strncpy(). [terminateStrncpy] vitetris-0.59.1/src/textgfx/allegro.c:60:23: style:inconclusive: Function 'settermwidth' argument 1 names different: declaration 'cols' definition 'w'. [funcArgNamesDifferent] vitetris-0.59.1/src/textgfx/textgfx.h:43:23: note: Function 'settermwidth' argument 1 names different: declaration 'cols' definition 'w'. vitetris-0.59.1/src/textgfx/allegro.c:60:23: note: Function 'settermwidth' argument 1 names different: declaration 'cols' definition 'w'. vitetris-0.59.1/src/textgfx/allegro.c:61:24: style:inconclusive: Function 'settermheight' argument 1 names different: declaration 'lines' definition 'h'. [funcArgNamesDifferent] vitetris-0.59.1/src/textgfx/textgfx.h:44:24: note: Function 'settermheight' argument 1 names different: declaration 'lines' definition 'h'. vitetris-0.59.1/src/textgfx/allegro.c:61:24: note: Function 'settermheight' argument 1 names different: declaration 'lines' definition 'h'. vitetris-0.59.1/src/textgfx/allegro.c:389:25: style:inconclusive: Function 'set_color_pair' argument 1 names different: declaration 'pair' definition 'clr'. [funcArgNamesDifferent] vitetris-0.59.1/src/textgfx/textgfx.h:103:25: note: Function 'set_color_pair' argument 1 names different: declaration 'pair' definition 'clr'. vitetris-0.59.1/src/textgfx/allegro.c:389:25: note: Function 'set_color_pair' argument 1 names different: declaration 'pair' definition 'clr'. vitetris-0.59.1/src/textgfx/allegro.c:91:8: style: Variable 'p' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/textgfx/allegro_win.c:49:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable screen [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/allegro_win.c:99:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable screen [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/allegro_win.c:67:23: style:inconclusive: Function 'setcolorpair' argument 1 names different: declaration 'pair' definition 'clr'. [funcArgNamesDifferent] vitetris-0.59.1/src/textgfx/textgfx.h:100:23: note: Function 'setcolorpair' argument 1 names different: declaration 'pair' definition 'clr'. vitetris-0.59.1/src/textgfx/allegro_win.c:67:23: note: Function 'setcolorpair' argument 1 names different: declaration 'pair' definition 'clr'. vitetris-0.59.1/src/textgfx/allegro_win.c:22:17: style: Variable 'p' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/textgfx/allegro_win.c:57:6: style: Unused variable: h [unusedVariable] vitetris-0.59.1/src/textgfx/ansi.c:107:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/ansi.c:124:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/ansi.c:156:25: style:inconclusive: Function 'set_color_pair' argument 1 names different: declaration 'pair' definition 'clr'. [funcArgNamesDifferent] vitetris-0.59.1/src/textgfx/textgfx.h:103:25: note: Function 'set_color_pair' argument 1 names different: declaration 'pair' definition 'clr'. vitetris-0.59.1/src/textgfx/ansi.c:156:25: note: Function 'set_color_pair' argument 1 names different: declaration 'pair' definition 'clr'. vitetris-0.59.1/src/textgfx/ansi.c:234:13: style: Unused variable: acs [unusedVariable] vitetris-0.59.1/src/textgfx/ansi_win.c:56:23: style:inconclusive: Function 'setcolorpair' argument 1 names different: declaration 'pair' definition 'clr'. [funcArgNamesDifferent] vitetris-0.59.1/src/textgfx/textgfx.h:100:23: note: Function 'setcolorpair' argument 1 names different: declaration 'pair' definition 'clr'. vitetris-0.59.1/src/textgfx/ansi_win.c:56:23: note: Function 'setcolorpair' argument 1 names different: declaration 'pair' definition 'clr'. vitetris-0.59.1/src/textgfx/ansi_win.c:20:17: style: Variable 'p' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/textgfx/curses.c:30:39: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ERR [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/curses.c:64:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable COLOR_BLUE [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/curses.c:78:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable COLOR_BLACK [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/curses.c:87:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdscr [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/curses.c:107:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdscr [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/curses.c:139:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdscr [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/curses.c:145:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdscr [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/curses.c:164:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable A_BOLD [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/curses.c:197:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable A_BOLD [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/curses.c:213:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable A_NORMAL [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/curses.c:224:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable A_BOLD [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/curses.c:229:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable A_UNDERLINE [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/curses.c:237:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ACS_CKBOARD [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/curses_win.c:37:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdscr [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/curses_win.c:61:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable A_NORMAL [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/curses_win.c:74:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable COLOR_YELLOW [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/curses_win.c:112:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdscr [valueFlowBailoutIncompleteVar] vitetris-0.59.1/src/textgfx/curses_win.c:45:21: style:inconclusive: Function 'refreshwin' argument 1 names different: declaration 'win' definition 'i'. [funcArgNamesDifferent] vitetris-0.59.1/src/textgfx/textgfx.h:83:21: note: Function 'refreshwin' argument 1 names different: declaration 'win' definition 'i'. vitetris-0.59.1/src/textgfx/curses_win.c:45:21: note: Function 'refreshwin' argument 1 names different: declaration 'win' definition 'i'. vitetris-0.59.1/src/textgfx/curses_win.c:110:6: style: Unused variable: y [unusedVariable] vitetris-0.59.1/src/textgfx/ibmgfx.c:8:8: style: Variable 'p' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/textgfx/term.c:51:22: style: Condition 'gettermsize_unix()' is always false [knownConditionTrueFalse] vitetris-0.59.1/src/textgfx/term.c:51:22: note: Calling function 'gettermsize_unix' returns 0 vitetris-0.59.1/src/textgfx/term.c:51:22: note: Condition 'gettermsize_unix()' is always false vitetris-0.59.1/src/textgfx/term.c:61:23: style:inconclusive: Function 'settermwidth' argument 1 names different: declaration 'cols' definition 'w'. [funcArgNamesDifferent] vitetris-0.59.1/src/textgfx/textgfx.h:43:23: note: Function 'settermwidth' argument 1 names different: declaration 'cols' definition 'w'. vitetris-0.59.1/src/textgfx/term.c:61:23: note: Function 'settermwidth' argument 1 names different: declaration 'cols' definition 'w'. vitetris-0.59.1/src/textgfx/term.c:70:24: style:inconclusive: Function 'settermheight' argument 1 names different: declaration 'lines' definition 'h'. [funcArgNamesDifferent] vitetris-0.59.1/src/textgfx/textgfx.h:44:24: note: Function 'settermheight' argument 1 names different: declaration 'lines' definition 'h'. vitetris-0.59.1/src/textgfx/term.c:70:24: note: Function 'settermheight' argument 1 names different: declaration 'lines' definition 'h'. vitetris-0.59.1/src/textgfx/term.c:42:8: style: Variable 's' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/textgfx/term.c:86:8: style: Variable 's' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/textgfx/term.c:104:8: style: Variable 'k' can be declared as pointer to const [constVariablePointer] vitetris-0.59.1/src/timer.c:77:2: style: Obsolescent function 'usleep' called. It is recommended to use 'nanosleep' or 'setitimer' instead. [prohibitedusleepCalled] vitetris-0.59.1/src/timer.c:42:15: style:inconclusive: Function 'gettm' argument 1 names different: declaration 'tm' definition 'a'. [funcArgNamesDifferent] vitetris-0.59.1/src/timer.h:9:15: note: Function 'gettm' argument 1 names different: declaration 'tm' definition 'a'. vitetris-0.59.1/src/timer.c:42:15: note: Function 'gettm' argument 1 names different: declaration 'tm' definition 'a'. vitetris-0.59.1/src/netw/socket.c:63:17: warning: If memory allocation fails, then there is a possible null pointer dereference: descr [ctunullpointerOutOfMemory] vitetris-0.59.1/src/netw/tty_socket.c:202:18: note: Assuming allocation function fails vitetris-0.59.1/src/netw/tty_socket.c:202:18: note: Assignment 's=malloc(strlen(((struct sockaddr_un*)(sock_addr))->sun_path)+9)', assigned value is 0 vitetris-0.59.1/src/netw/tty_socket.c:205:8: note: Calling function sock_errmsg, 1st argument is null vitetris-0.59.1/src/netw/socket.c:63:17: note: Dereferencing argument descr that is null vitetris-0.59.1/src/netw/tty_socket.c:44:19: warning: Null pointer dereference: tty [ctunullpointer] vitetris-0.59.1/src/netw/tty_socket.c:223:16: note: Assuming that condition 'tty' is not redundant vitetris-0.59.1/src/netw/tty_socket.c:215:11: note: Calling function 'getaddr', 1st argument 'tty' value is 0 vitetris-0.59.1/src/netw/tty_socket.c:171:10: note: Calling function getfname, 2nd argument is null vitetris-0.59.1/src/netw/tty_socket.c:44:19: note: Dereferencing argument tty that is null diff: head vitetris-0.59.1/src/cmdline.c:625:6: error: Uninitialized variable: v [uninitvar] DONE