2026-05-05 10:15 ftp://ftp.de.debian.org/debian/pool/main/t/tinyirc/tinyirc_1.1.dfsg.1.orig.tar.gz cppcheck-options: --library=posix --library=gnu --library=bsd --inconclusive --enable=style,information --inline-suppr --template=daca2 --disable=missingInclude --suppress=unmatchedSuppression --check-library --debug-warnings --suppress=autoNoType --suppress=valueFlowBailout --suppress=bailoutUninitVar --suppress=symbolDatabaseWarning --suppress=normalCheckLevelConditionExpressions -D__GNUC__ --platform=unix64 -j1 platform: Linux-6.8.0-111-generic-x86_64-with-glibc2.39 python: 3.12.3 client-version: 1.3.70 compiler: g++ (Ubuntu 14.2.0-4ubuntu2~24.04.1) 14.2.0 cppcheck: head 2.20.0 head-info: f01120b (2026-05-05 11:35:05 +0200) count: 74 73 elapsed-time: 0.6 0.5 head-timing-info: old-timing-info: head results: tinyirc-1.1.dfsg.1/tinyirc.c:169:1: portability: Omitted return type of function 'hexascii' defaults to int, this is not supported by ISO C99 and later standards. [returnImplicitInt] tinyirc-1.1.dfsg.1/tinyirc.c:186:1: portability: Omitted return type of function 'asciihex' defaults to int, this is not supported by ISO C99 and later standards. [returnImplicitInt] tinyirc-1.1.dfsg.1/tinyirc.c:911:1: portability: Omitted return type of function 'main' defaults to int, this is not supported by ISO C99 and later standards. [returnImplicitInt] tinyirc-1.1.dfsg.1/tinyirc.c:423:6: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable TIOCSETP [valueFlowBailoutIncompleteVar] tinyirc-1.1.dfsg.1/tinyirc.c:721:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] tinyirc-1.1.dfsg.1/tinyirc.c:837:2: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable TIOCSETP [valueFlowBailoutIncompleteVar] tinyirc-1.1.dfsg.1/tinyirc.c:861:6: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable RAW [valueFlowBailoutIncompleteVar] tinyirc-1.1.dfsg.1/tinyirc.c:887:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SOCK_STREAM [valueFlowBailoutIncompleteVar] tinyirc-1.1.dfsg.1/tinyirc.c:922:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable DEFAULTSERVER [valueFlowBailoutIncompleteVar] tinyirc-1.1.dfsg.1/tinyirc.c:506:15: style: Array index 'i' is used before limits check. [arrayIndexThenCheck] tinyirc-1.1.dfsg.1/tinyirc.c:583:15: style: Array index 'i' is used before limits check. [arrayIndexThenCheck] tinyirc-1.1.dfsg.1/tinyirc.c:945:3: warning:inconclusive: The buffer 'IRCNAME' may not be null-terminated after the call to strncpy(). [terminateStrncpy] tinyirc-1.1.dfsg.1/tinyirc.c:958:6: warning:inconclusive: The buffer 'IRCNAME' may not be null-terminated after the call to strncpy(). [terminateStrncpy] tinyirc-1.1.dfsg.1/tinyirc.c:960:6: warning:inconclusive: The buffer 'IRCNAME' may not be null-terminated after the call to strncpy(). [terminateStrncpy] tinyirc-1.1.dfsg.1/tinyirc.c:207:16: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] tinyirc-1.1.dfsg.1/tinyirc.c:280:14: style: Obsolescent function 'index' called. It is recommended to use 'strchr' instead. [prohibitedindexCalled] tinyirc-1.1.dfsg.1/tinyirc.c:393:8: style: Obsolescent function 'index' called. It is recommended to use 'strchr' instead. [prohibitedindexCalled] tinyirc-1.1.dfsg.1/tinyirc.c:401:8: style: Obsolescent function 'index' called. It is recommended to use 'strchr' instead. [prohibitedindexCalled] tinyirc-1.1.dfsg.1/tinyirc.c:410:8: style: Obsolescent function 'index' called. It is recommended to use 'strchr' instead. [prohibitedindexCalled] tinyirc-1.1.dfsg.1/tinyirc.c:484:12: style: Obsolescent function 'index' called. It is recommended to use 'strchr' instead. [prohibitedindexCalled] tinyirc-1.1.dfsg.1/tinyirc.c:510:16: style: Obsolescent function 'index' called. It is recommended to use 'strchr' instead. [prohibitedindexCalled] tinyirc-1.1.dfsg.1/tinyirc.c:519:15: style: Obsolescent function 'index' called. It is recommended to use 'strchr' instead. [prohibitedindexCalled] tinyirc-1.1.dfsg.1/tinyirc.c:584:12: style: Obsolescent function 'index' called. It is recommended to use 'strchr' instead. [prohibitedindexCalled] tinyirc-1.1.dfsg.1/tinyirc.c:722:8: style: Obsolescent function 'index' called. It is recommended to use 'strchr' instead. [prohibitedindexCalled] tinyirc-1.1.dfsg.1/tinyirc.c:880:15: style: Obsolescent function 'gethostbyname' called. It is recommended to use 'getaddrinfo' instead. [prohibitedgethostbynameCalled] tinyirc-1.1.dfsg.1/tinyirc.c:883:2: style: Obsolescent function 'bzero' called. It is recommended to use 'memset' instead. [prohibitedbzeroCalled] tinyirc-1.1.dfsg.1/tinyirc.c:884:2: style: Obsolescent function 'bcopy' called. It is recommended to use 'memcpy' or 'memmove' instead. [prohibitedbcopyCalled] tinyirc-1.1.dfsg.1/tinyirc.c:940:17: style: Obsolescent function 'index' called. It is recommended to use 'strchr' instead. [prohibitedindexCalled] tinyirc-1.1.dfsg.1/tinyirc.c:955:13: portability: Non reentrant function 'getpwuid' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getpwuid_r'. [prohibitedgetpwuidCalled] tinyirc-1.1.dfsg.1/tinyirc.c:963:29: portability: Non reentrant function 'ttyname' called. For threadsafe applications it is recommended to use the reentrant replacement function 'ttyname_r'. [prohibitedttynameCalled] tinyirc-1.1.dfsg.1/tinyirc.c:971:16: style: Obsolescent function 'gethostbyaddr' called. It is recommended to use 'getnameinfo' instead. [prohibitedgethostbyaddrCalled] tinyirc-1.1.dfsg.1/tinyirc.c:121:22: warning: Either the condition 'str2!=0' is redundant or there is possible null pointer dereference: str2. [nullPointerRedundantCheck] tinyirc-1.1.dfsg.1/tinyirc.c:109:31: note: Assuming that condition 'str2!=0' is not redundant tinyirc-1.1.dfsg.1/tinyirc.c:121:22: note: Null pointer dereference tinyirc-1.1.dfsg.1/tinyirc.c:128:12: warning: If memory allocation fails, then there is a possible null pointer dereference: newobj [nullPointerOutOfMemory] tinyirc-1.1.dfsg.1/tinyirc.c:127:37: note: Assuming allocation function fails tinyirc-1.1.dfsg.1/tinyirc.c:127:14: note: Assignment 'newobj=(struct dlist*)malloc(sizeof(struct dlist))', assigned value is 0 tinyirc-1.1.dfsg.1/tinyirc.c:128:12: note: Null pointer dereference tinyirc-1.1.dfsg.1/tinyirc.c:129:5: warning: If memory allocation fails, then there is a possible null pointer dereference: newobj [nullPointerOutOfMemory] tinyirc-1.1.dfsg.1/tinyirc.c:127:37: note: Assuming allocation function fails tinyirc-1.1.dfsg.1/tinyirc.c:127:14: note: Assignment 'newobj=(struct dlist*)malloc(sizeof(struct dlist))', assigned value is 0 tinyirc-1.1.dfsg.1/tinyirc.c:129:5: note: Null pointer dereference tinyirc-1.1.dfsg.1/tinyirc.c:130:5: warning: If memory allocation fails, then there is a possible null pointer dereference: newobj [nullPointerOutOfMemory] tinyirc-1.1.dfsg.1/tinyirc.c:127:37: note: Assuming allocation function fails tinyirc-1.1.dfsg.1/tinyirc.c:127:14: note: Assignment 'newobj=(struct dlist*)malloc(sizeof(struct dlist))', assigned value is 0 tinyirc-1.1.dfsg.1/tinyirc.c:130:5: note: Null pointer dereference tinyirc-1.1.dfsg.1/tinyirc.c:172:9: style: Local variable 'ch' shadows outer variable [shadowVariable] tinyirc-1.1.dfsg.1/tinyirc.c:69:19: note: Shadowed declaration tinyirc-1.1.dfsg.1/tinyirc.c:172:9: note: Shadow variable tinyirc-1.1.dfsg.1/tinyirc.c:106:7: style: Parameter 'str1' can be declared as pointer to const [constParameterPointer] tinyirc-1.1.dfsg.1/tinyirc.c:106:14: style: Parameter 'str2' can be declared as pointer to const [constParameterPointer] tinyirc-1.1.dfsg.1/tinyirc.c:124:7: style: Parameter 'item' can be declared as pointer to const [constParameterPointer] tinyirc-1.1.dfsg.1/tinyirc.c:170:7: style: Parameter 's' can be declared as pointer to const [constParameterPointer] tinyirc-1.1.dfsg.1/tinyirc.c:187:7: style: Parameter 's' can be declared as pointer to const [constParameterPointer] tinyirc-1.1.dfsg.1/tinyirc.c:273:11: style: Variable 't' can be declared as pointer to const [constVariablePointer] tinyirc-1.1.dfsg.1/tinyirc.c:480:7: style: Parameter 'p' can be declared as pointer to const [constParameterPointer] tinyirc-1.1.dfsg.1/tinyirc.c:875:7: style: Parameter 'hostname' can be declared as pointer to const [constParameterPointer] tinyirc-1.1.dfsg.1/tinyirc.c:915:22: style: Variable 'utmp' can be declared as pointer to const [constVariablePointer] tinyirc-1.1.dfsg.1/tinyirc.c:679:13: style: Variable 'outcol' is assigned a value that is never used. [unreadVariable] tinyirc-1.1.dfsg.1/tinyircd.c:117:1: portability: Omitted return type of function 'main' defaults to int, this is not supported by ISO C99 and later standards. [returnImplicitInt] tinyirc-1.1.dfsg.1/tinyircd.c:99:39: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable IRCPORT [valueFlowBailoutIncompleteVar] tinyirc-1.1.dfsg.1/tinyircd.c:125:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable tmp [valueFlowBailoutIncompleteVar] tinyirc-1.1.dfsg.1/tinyircd.c:93:15: style: Obsolescent function 'gethostbyname' called. It is recommended to use 'getaddrinfo' instead. [prohibitedgethostbynameCalled] tinyirc-1.1.dfsg.1/tinyircd.c:96:2: style: Obsolescent function 'bzero' called. It is recommended to use 'memset' instead. [prohibitedbzeroCalled] tinyirc-1.1.dfsg.1/tinyircd.c:97:2: style: Obsolescent function 'bcopy' called. It is recommended to use 'memcpy' or 'memmove' instead. [prohibitedbcopyCalled] tinyirc-1.1.dfsg.1/tinyircd.c:144:17: style: Obsolescent function 'index' called. It is recommended to use 'strchr' instead. [prohibitedindexCalled] tinyirc-1.1.dfsg.1/tinyircd.c:159:13: portability: Non reentrant function 'getpwuid' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getpwuid_r'. [prohibitedgetpwuidCalled] tinyirc-1.1.dfsg.1/tinyircd.c:167:29: portability: Non reentrant function 'ttyname' called. For threadsafe applications it is recommended to use the reentrant replacement function 'ttyname_r'. [prohibitedttynameCalled] tinyirc-1.1.dfsg.1/tinyircd.c:175:16: style: Obsolescent function 'gethostbyaddr' called. It is recommended to use 'getnameinfo' instead. [prohibitedgethostbyaddrCalled] tinyirc-1.1.dfsg.1/tinyircd.c:84:22: warning: Either the condition 'str2!=0' is redundant or there is possible null pointer dereference: str2. [nullPointerRedundantCheck] tinyirc-1.1.dfsg.1/tinyircd.c:72:31: note: Assuming that condition 'str2!=0' is not redundant tinyirc-1.1.dfsg.1/tinyircd.c:84:22: note: Null pointer dereference tinyirc-1.1.dfsg.1/tinyircd.c:69:7: style: Parameter 'str1' can be declared as pointer to const [constParameterPointer] tinyirc-1.1.dfsg.1/tinyircd.c:69:14: style: Parameter 'str2' can be declared as pointer to const [constParameterPointer] tinyirc-1.1.dfsg.1/tinyircd.c:88:7: style: Parameter 'hostname' can be declared as pointer to const [constParameterPointer] tinyirc-1.1.dfsg.1/tinyircd.c:47:11: style: struct member 'channel_list::name' is never used. [unusedStructMember] tinyirc-1.1.dfsg.1/tinyircd.c:48:11: style: struct member 'channel_list::users' is never used. [unusedStructMember] tinyirc-1.1.dfsg.1/tinyircd.c:49:11: style: struct member 'channel_list::modes' is never used. [unusedStructMember] tinyirc-1.1.dfsg.1/tinyircd.c:50:11: style: struct member 'channel_list::banlist' is never used. [unusedStructMember] tinyirc-1.1.dfsg.1/tinyircd.c:51:11: style: struct member 'channel_list::moderators' is never used. [unusedStructMember] tinyirc-1.1.dfsg.1/tinyircd.c:52:12: style: struct member 'channel_list::creation' is never used. [unusedStructMember] tinyirc-1.1.dfsg.1/tinyircd.c:53:26: style: struct member 'channel_list::next' is never used. [unusedStructMember] tinyirc-1.1.dfsg.1/tinyircd.c:57:11: style: struct member 'user_list::nick' is never used. [unusedStructMember] tinyirc-1.1.dfsg.1/tinyircd.c:58:11: style: struct member 'user_list::logname' is never used. [unusedStructMember] tinyirc-1.1.dfsg.1/tinyircd.c:59:11: style: struct member 'user_list::loghost' is never used. [unusedStructMember] tinyirc-1.1.dfsg.1/tinyircd.c:60:11: style: struct member 'user_list::realname' is never used. [unusedStructMember] tinyirc-1.1.dfsg.1/tinyircd.c:61:11: style: struct member 'user_list::mode' is never used. [unusedStructMember] tinyirc-1.1.dfsg.1/tinyircd.c:62:12: style: struct member 'user_list::creation' is never used. [unusedStructMember] tinyirc-1.1.dfsg.1/tinyircd.c:63:9: style: struct member 'user_list::hopcount' is never used. [unusedStructMember] diff: head tinyirc-1.1.dfsg.1/tinyirc.c:915:22: style: Variable 'utmp' can be declared as pointer to const [constVariablePointer] DONE