2024-04-12 21:01 ftp://ftp.de.debian.org/debian/pool/main/s/shadowsocks-libev/shadowsocks-libev_3.3.5+ds.orig.tar.xz cppcheck-options: --library=posix --library=gnu --library=bsd --library=pcre --inconclusive --enable=style,information --inline-suppr --template=daca2 --disable=missingInclude --suppress=unmatchedSuppression --check-library --debug-warnings --suppress=autoNoType --suppress=valueFlowBailout --suppress=bailoutUninitVar --suppress=symbolDatabaseWarning -D__GNUC__ --platform=unix64 -j4 platform: Linux-6.1.0-18-amd64-x86_64-with-glibc2.36 python: 3.11.2 client-version: 1.3.56 compiler: g++ (Debian 12.2.0-14) 12.2.0 cppcheck: head 2.13.0 head-info: 646f869 (2024-04-12 10:43:30 +0200) count: 108 78 elapsed-time: 1.8 2.4 head-timing-info: old-timing-info: head results: shadowsocks-libev-3.3.5/src/crypto.h:53:0: error: #error Cipher Feedback mode a.k.a CFB not supported by your mbed TLS. [preprocessorErrorDirective] shadowsocks-libev-3.3.5/src/android.c:55:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LOG_ERR [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/android.c:106:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LOG_ERR [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/acl.c:127:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LOG_ERR [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/android.c:55:9: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/android.c:71:9: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/android.c:106:9: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/android.c:122:9: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/jconf.c:45:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable json_string [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/jconf.c:151:5: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LOG_ERR [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/jconf.c:203:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable json_object [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/netutils.c:60:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SOL_SOCKET [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/netutils.c:66:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_INET [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/netutils.c:97:53: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable sockaddr_storage [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/netutils.c:120:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_INET [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/netutils.c:137:32: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_INET [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/netutils.c:215:30: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_INET [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/netutils.c:249:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LOG_INFO [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/netutils.c:306:43: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable sockaddr_storage [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/acl.c:127:9: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/acl.c:139:17: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/acl.c:147:21: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/acl.c:262:28: style:inconclusive: Function 'acl_match_host' argument 1 names different: declaration 'ip' definition 'host'. [funcArgNamesDifferent] shadowsocks-libev-3.3.5/src/acl.h:32:32: note: Function 'acl_match_host' argument 1 names different: declaration 'ip' definition 'host'. shadowsocks-libev-3.3.5/src/acl.c:262:28: note: Function 'acl_match_host' argument 1 names different: declaration 'ip' definition 'host'. shadowsocks-libev-3.3.5/src/acl.c:60:11: style: Variable 'pch' can be declared as pointer to const [constVariablePointer] shadowsocks-libev-3.3.5/src/acl.c:163:19: style: Variable 'line' can be declared as pointer to const [constVariablePointer] shadowsocks-libev-3.3.5/src/plugin.c:63:49: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/plugin.c:179:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOMEM [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/plugin.c:272:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PATH_MAX [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/plugin.c:312:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_INET [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/plugin.c:337:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LOG_INFO [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/netutils.c:101:17: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/netutils.c:108:17: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/netutils.c:166:13: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/netutils.c:191:13: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/netutils.c:249:9: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/netutils.c:64:35: style: Parameter 'addr' can be declared as pointer to const [constParameterPointer] shadowsocks-libev-3.3.5/src/netutils.c:117:39: style: Parameter 'storage' can be declared as pointer to const [constParameterPointer] shadowsocks-libev-3.3.5/src/netutils.c:129:32: style: Parameter 'port' can be declared as pointer to const [constParameterPointer] shadowsocks-libev-3.3.5/src/netutils.c:157:35: style: Variable 'rp' can be declared as pointer to const [constVariablePointer] shadowsocks-libev-3.3.5/src/netutils.c:206:25: style: Variable 'p1_in' can be declared as pointer to const [constVariablePointer] shadowsocks-libev-3.3.5/src/netutils.c:207:25: style: Variable 'p2_in' can be declared as pointer to const [constVariablePointer] shadowsocks-libev-3.3.5/src/netutils.c:208:26: style: Variable 'p1_in6' can be declared as pointer to const [constVariablePointer] shadowsocks-libev-3.3.5/src/netutils.c:209:26: style: Variable 'p2_in6' can be declared as pointer to const [constVariablePointer] shadowsocks-libev-3.3.5/src/netutils.c:240:25: style: Variable 'p1_in' can be declared as pointer to const [constVariablePointer] shadowsocks-libev-3.3.5/src/netutils.c:241:25: style: Variable 'p2_in' can be declared as pointer to const [constVariablePointer] shadowsocks-libev-3.3.5/src/netutils.c:242:26: style: Variable 'p1_in6' can be declared as pointer to const [constVariablePointer] shadowsocks-libev-3.3.5/src/netutils.c:243:26: style: Variable 'p2_in6' can be declared as pointer to const [constVariablePointer] shadowsocks-libev-3.3.5/src/netutils.c:278:15: style: Variable 'next_dot' can be declared as pointer to const [constVariablePointer] shadowsocks-libev-3.3.5/src/plugin.c:199:15: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] shadowsocks-libev-3.3.5/src/plugin.c:202:19: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] shadowsocks-libev-3.3.5/src/plugin.c:337:13: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/plugin.c:316:9: error: Resource leak: sock [resourceLeak] shadowsocks-libev-3.3.5/src/plugin.c:321:9: error: Resource leak: sock [resourceLeak] shadowsocks-libev-3.3.5/src/plugin.c:75:46: style: Parameter 'vself' can be declared as pointer to const. However it seems that 'plugin_log__eof' is a callback function, if 'vself' is declared with const you might also need to cast function pointer(s). [constParameterCallback] shadowsocks-libev-3.3.5/src/plugin.c:90:13: note: You might need to cast the function pointer here shadowsocks-libev-3.3.5/src/plugin.c:75:46: note: Parameter 'vself' can be declared as pointer to const shadowsocks-libev-3.3.5/src/plugin.c:83:47: style: Parameter 'vself' can be declared as pointer to const. However it seems that 'plugin_log__free' is a callback function, if 'vself' is declared with const you might also need to cast function pointer(s). [constParameterCallback] shadowsocks-libev-3.3.5/src/plugin.c:91:13: note: You might need to cast the function pointer here shadowsocks-libev-3.3.5/src/plugin.c:83:47: note: Parameter 'vself' can be declared as pointer to const shadowsocks-libev-3.3.5/src/ppbloom.c:40:18: style:inconclusive: Function 'ppbloom_init' argument 1 names different: declaration 'entries' definition 'n'. [funcArgNamesDifferent] shadowsocks-libev-3.3.5/src/ppbloom.h:26:22: note: Function 'ppbloom_init' argument 1 names different: declaration 'entries' definition 'n'. shadowsocks-libev-3.3.5/src/ppbloom.c:40:18: note: Function 'ppbloom_init' argument 1 names different: declaration 'entries' definition 'n'. shadowsocks-libev-3.3.5/src/ppbloom.c:40:28: style:inconclusive: Function 'ppbloom_init' argument 2 names different: declaration 'error' definition 'e'. [funcArgNamesDifferent] shadowsocks-libev-3.3.5/src/ppbloom.h:26:38: note: Function 'ppbloom_init' argument 2 names different: declaration 'error' definition 'e'. shadowsocks-libev-3.3.5/src/ppbloom.c:40:28: note: Function 'ppbloom_init' argument 2 names different: declaration 'error' definition 'e'. shadowsocks-libev-3.3.5/src/rule.c:64:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LOG_ERR [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/rule.c:87:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LOG_ERR [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/rule.c:132:5: warning: Assignment of function parameter has no effect outside the function. Did you forget dereferencing it? [uselessAssignmentPtrArg] shadowsocks-libev-3.3.5/src/rule.c:64:9: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/rule.c:87:13: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/resolv.c:127:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ARES_SOCKET_BAD [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/resolv.c:151:37: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ARES_LIB_INIT_ALL [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/resolv.c:227:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_INET [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/resolv.c:243:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ARES_EDESTRUCTION [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/resolv.c:305:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ARES_EDESTRUCTION [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/resolv.c:396:34: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable sa_family [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/resolv.c:407:34: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable sa_family [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/resolv.c:470:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable fd [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/resolv.c:389:5: warning: Assignment of function parameter has no effect outside the function. Did you forget dereferencing it? [uselessAssignmentPtrArg] shadowsocks-libev-3.3.5/src/resolv.c:152:9: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/resolv.c:249:13: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/resolv.c:255:9: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/resolv.c:268:13: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/resolv.c:281:21: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/resolv.c:311:13: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/resolv.c:317:9: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/resolv.c:330:13: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/resolv.c:343:21: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/resolv.c:485:9: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/resolv.c:125:29: style: Parameter 'w' can be declared as pointer to const. However it seems that 'resolv_sock_cb' is a callback function, if 'w' is declared with const you might also need to cast function pointer(s). [constParameterCallback] shadowsocks-libev-3.3.5/src/resolv.c:186:41: note: You might need to cast the function pointer here shadowsocks-libev-3.3.5/src/resolv.c:125:29: note: Parameter 'w' can be declared as pointer to const shadowsocks-libev-3.3.5/src/cache.c:55:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/cache.c:85:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/cache.c:125:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/cache.c:167:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/cache.c:215:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/cache.c:242:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable next [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/cache.c:274:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] shadowsocks-libev-3.3.5/src/jconf.c:52:9: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/jconf.c:151:5: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/jconf.c:316:21: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] shadowsocks-libev-3.3.5/src/jconf.c:170:11: warning: Either the condition 'f==NULL' is redundant or there is possible null pointer dereference: f. [nullPointerRedundantCheck] shadowsocks-libev-3.3.5/src/jconf.c:166:11: note: Assuming that condition 'f==NULL' is not redundant shadowsocks-libev-3.3.5/src/jconf.c:170:11: note: Null pointer dereference shadowsocks-libev-3.3.5/src/jconf.c:171:22: warning: Either the condition 'f==NULL' is redundant or there is possible null pointer dereference: f. [nullPointerRedundantCheck] shadowsocks-libev-3.3.5/src/jconf.c:166:11: note: Assuming that condition 'f==NULL' is not redundant shadowsocks-libev-3.3.5/src/jconf.c:171:22: note: Null pointer dereference shadowsocks-libev-3.3.5/src/jconf.c:172:11: warning: Either the condition 'f==NULL' is redundant or there is possible null pointer dereference: f. [nullPointerRedundantCheck] shadowsocks-libev-3.3.5/src/jconf.c:166:11: note: Assuming that condition 'f==NULL' is not redundant shadowsocks-libev-3.3.5/src/jconf.c:172:11: note: Null pointer dereference shadowsocks-libev-3.3.5/src/jconf.c:187:23: warning: Either the condition 'buf==NULL' is redundant or there is possible null pointer dereference: buf. [nullPointerRedundantCheck] shadowsocks-libev-3.3.5/src/jconf.c:183:13: note: Assuming that condition 'buf==NULL' is not redundant shadowsocks-libev-3.3.5/src/jconf.c:187:23: note: Null pointer dereference shadowsocks-libev-3.3.5/src/jconf.c:203:9: warning: Either the condition 'obj==NULL' is redundant or there is possible null pointer dereference: obj. [nullPointerRedundantCheck] shadowsocks-libev-3.3.5/src/jconf.c:199:13: note: Assuming that condition 'obj==NULL' is not redundant shadowsocks-libev-3.3.5/src/jconf.c:203:9: note: Null pointer dereference shadowsocks-libev-3.3.5/src/jconf.c:66:24: style:inconclusive: Function 'parse_addr' argument 1 names different: declaration 'str' definition 'str_in'. [funcArgNamesDifferent] shadowsocks-libev-3.3.5/src/jconf.h:92:29: note: Function 'parse_addr' argument 1 names different: declaration 'str' definition 'str_in'. shadowsocks-libev-3.3.5/src/jconf.c:66:24: note: Function 'parse_addr' argument 1 names different: declaration 'str' definition 'str_in'. shadowsocks-libev-3.3.5/src/jconf.c:72:11: style: Variable 'pch' can be declared as pointer to const [constVariablePointer] shadowsocks-libev-3.3.5/src/jconf.c:206:19: style: Variable 'name' can be declared as pointer to const [constVariablePointer] shadowsocks-libev-3.3.5/src/jconf.c:214:37: style: Variable 'v' can be declared as pointer to const [constVariablePointer] shadowsocks-libev-3.3.5/src/jconf.c:232:37: style: Variable 'v' can be declared as pointer to const [constVariablePointer] shadowsocks-libev-3.3.5/src/jconf.c:291:37: style: Variable 'v' can be declared as pointer to const [constVariablePointer] shadowsocks-libev-3.3.5/src/cache.c:105:5: warning: Assignment of function parameter has no effect outside the function. Did you forget dereferencing it? [uselessAssignmentPtrArg] shadowsocks-libev-3.3.5/src/cache.c:162:41: style: Parameter 'key' can be declared as pointer to const [constParameterPointer] shadowsocks-libev-3.3.5/src/cache.c:209:41: style: Parameter 'key' can be declared as pointer to const [constParameterPointer] shadowsocks-libev-3.3.5/src/cache.c:232:44: style: Parameter 'key' can be declared as pointer to const [constParameterPointer] shadowsocks-libev-3.3.5/src/cache.c:268:41: style: Parameter 'key' can be declared as pointer to const [constParameterPointer] diff: head shadowsocks-libev-3.3.5/src/android.c:106:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LOG_ERR [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/cache.c:125:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/cache.c:167:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/cache.c:215:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/cache.c:242:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable next [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/cache.c:274:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/cache.c:85:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/jconf.c:151:5: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LOG_ERR [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/jconf.c:203:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable json_object [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/netutils.c:120:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_INET [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/netutils.c:137:32: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_INET [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/netutils.c:215:30: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_INET [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/netutils.c:249:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LOG_INFO [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/netutils.c:306:43: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable sockaddr_storage [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/netutils.c:66:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_INET [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/netutils.c:97:53: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable sockaddr_storage [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/plugin.c:179:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOMEM [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/plugin.c:272:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PATH_MAX [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/plugin.c:312:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_INET [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/plugin.c:337:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LOG_INFO [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/plugin.c:75:46: style: Parameter 'vself' can be declared as pointer to const. However it seems that 'plugin_log__eof' is a callback function, if 'vself' is declared with const you might also need to cast function pointer(s). [constParameterCallback] shadowsocks-libev-3.3.5/src/plugin.c:90:13: note: You might need to cast the function pointer here shadowsocks-libev-3.3.5/src/plugin.c:75:46: note: Parameter 'vself' can be declared as pointer to const head shadowsocks-libev-3.3.5/src/plugin.c:83:47: style: Parameter 'vself' can be declared as pointer to const. However it seems that 'plugin_log__free' is a callback function, if 'vself' is declared with const you might also need to cast function pointer(s). [constParameterCallback] shadowsocks-libev-3.3.5/src/plugin.c:91:13: note: You might need to cast the function pointer here shadowsocks-libev-3.3.5/src/plugin.c:83:47: note: Parameter 'vself' can be declared as pointer to const head shadowsocks-libev-3.3.5/src/resolv.c:151:37: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ARES_LIB_INIT_ALL [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/resolv.c:227:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_INET [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/resolv.c:243:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ARES_EDESTRUCTION [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/resolv.c:305:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ARES_EDESTRUCTION [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/resolv.c:396:34: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable sa_family [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/resolv.c:407:34: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable sa_family [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/resolv.c:470:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable fd [valueFlowBailoutIncompleteVar] head shadowsocks-libev-3.3.5/src/rule.c:87:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LOG_ERR [valueFlowBailoutIncompleteVar] DONE