2025-05-09 22:43 ftp://ftp.de.debian.org/debian/pool/main/c/courier-authlib/courier-authlib_0.72.4.orig.tar.bz2 cppcheck-options: --library=posix --library=gnu --library=bsd --library=sqlite3 --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-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: b3c7f00 (2025-05-09 17:59:20 +0200) count: 361 360 elapsed-time: 6.6 6.5 head-timing-info: old-timing-info: head results: courier-authlib-0.72.4/authconfigfile.cpp:27:29: warning: Member variable 'config_file::config_timestamp' is not initialized in the constructor. [uninitMemberVar] courier-authlib-0.72.4/authconfigfile.cpp:60:7: style:inconclusive: Technically the member function 'isspace::operator()' can be const. [functionConst] courier-authlib-0.72.4/authconfigfile.cpp:70:7: warning: The class 'not_isspace' defines member function with name 'operator()' also defined in its parent class 'isspace'. [duplInheritedMember] courier-authlib-0.72.4/authconfigfile.cpp:60:7: note: Parent function 'isspace::operator()' courier-authlib-0.72.4/authconfigfile.cpp:70:7: note: Derived function 'not_isspace::operator()' courier-authlib-0.72.4/authconfigfile.cpp:117:31: warning:inconclusive: Possible dereference of an invalid iterator: e [derefInvalidIterator] courier-authlib-0.72.4/authconfigfile.cpp:139:11: note: Assignment 'e=s.end()', assigned value is end=0 courier-authlib-0.72.4/authconfigfile.cpp:117:31: note: Dereference of an invalid iterator courier-authlib-0.72.4/authcustom.c:31:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authcustom.c:89:2: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authcustom.c:28:12: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authcustom.c:29:9: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authdaemon.c:60:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable NUMBUFSIZE [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemon.c:100:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemon.c:146:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemon.c:181:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemon.c:208:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemon.c:288:6: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemon.c:214:14: portability: Non reentrant function 'readdir' called. For threadsafe applications it is recommended to use the reentrant replacement function 'readdir_r'. [prohibitedreaddirCalled] courier-authlib-0.72.4/authdaemon.c:269:21: portability: Non reentrant function 'getpwnam' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getpwnam_r'. [prohibitedgetpwnamCalled] courier-authlib-0.72.4/authdaemon.c:297:7: style: Condition 'rc' is always false [knownConditionTrueFalse] courier-authlib-0.72.4/authdaemon.c:270:22: note: Calling function 'do_mkhomedir' returns 0 courier-authlib-0.72.4/authdaemon.c:293:15: note: Calling function 'mkhomedir' returns 0 courier-authlib-0.72.4/authdaemon.c:293:15: note: Assignment 'rc=mkhomedir(ainfo,p)', assigned value is 0 courier-authlib-0.72.4/authdaemon.c:297:7: note: Condition 'rc' is always false courier-authlib-0.72.4/authdaemon.c:279:37: style:inconclusive: Function 'auth_mkhomedir' argument 1 names different: declaration 'info' definition 'ainfo'. [funcArgNamesDifferent] courier-authlib-0.72.4/courierauth.h:189:37: note: Function 'auth_mkhomedir' argument 1 names different: declaration 'info' definition 'ainfo'. courier-authlib-0.72.4/authdaemon.c:279:37: note: Function 'auth_mkhomedir' argument 1 names different: declaration 'info' definition 'ainfo'. courier-authlib-0.72.4/authdaemon.c:56:15: style: Parameter 'authdata' can be declared as pointer to const [constParameterPointer] courier-authlib-0.72.4/authdaemon.c:62:8: style: Variable 'n' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/authdaemon.c:136:20: style: Parameter 'stat_buf' can be declared as pointer to const [constParameterPointer] courier-authlib-0.72.4/authdaemon.c:200:17: style: Variable 'de' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/authdaemon.c:264:39: style: Parameter 'ainfo' can be declared as pointer to const [constParameterPointer] courier-authlib-0.72.4/authdaemon.c:269:18: style: Variable 'pw' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/authdaemond.c:57:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_UNIX [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemond.c:87:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemond.c:165:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable BUFSIZ [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemond.c:262:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemond.c:423:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable NUMBUFSIZE [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemond.c:590:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable NUMBUFSIZE [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemond.c:798:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable BUFSIZ [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemond.c:922:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIG_DFL [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemond.c:935:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemond.c:965:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemond.c:396:12: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authdaemond.c:396:44: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authdaemond.c:83:15: style: Checking if unsigned expression 'ndaemons' is less than zero. [unsignedLessThanZero] courier-authlib-0.72.4/authdaemond.c:78:7: style: Local variable 'buf' shadows outer variable [shadowVariable] courier-authlib-0.72.4/authdaemond.c:241:13: note: Shadowed declaration courier-authlib-0.72.4/authdaemond.c:78:7: note: Shadow variable courier-authlib-0.72.4/authdaemond.c:165:7: style: Local variable 'buf' shadows outer variable [shadowVariable] courier-authlib-0.72.4/authdaemond.c:241:13: note: Shadowed declaration courier-authlib-0.72.4/authdaemond.c:165:7: note: Shadow variable courier-authlib-0.72.4/authdaemond.c:590:7: style: Local variable 'buf' shadows outer variable [shadowVariable] courier-authlib-0.72.4/authdaemond.c:241:13: note: Shadowed declaration courier-authlib-0.72.4/authdaemond.c:590:7: note: Shadow variable courier-authlib-0.72.4/authdaemond.c:754:26: style: Local variable 'auth' shadows outer function [shadowFunction] courier-authlib-0.72.4/authdaemond.c:730:13: note: Shadowed declaration courier-authlib-0.72.4/authdaemond.c:754:26: note: Shadow variable courier-authlib-0.72.4/authdaemond.c:789:26: style: Local variable 'auth' shadows outer function [shadowFunction] courier-authlib-0.72.4/authdaemond.c:730:13: note: Shadowed declaration courier-authlib-0.72.4/authdaemond.c:789:26: note: Shadow variable courier-authlib-0.72.4/authdaemond.c:798:6: style: Local variable 'buf' shadows outer variable [shadowVariable] courier-authlib-0.72.4/authdaemond.c:241:13: note: Shadowed declaration courier-authlib-0.72.4/authdaemond.c:798:6: note: Shadow variable courier-authlib-0.72.4/authdaemond.c:499:31: style: Parameter 'prebuf' can be declared as pointer to const [constParameterPointer] courier-authlib-0.72.4/authdaemond.c:903:31: style: Parameter 'pipefd' can be declared as pointer to const [constParameterPointer] courier-authlib-0.72.4/authdaemondcpp.cpp:22:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cerr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemonlib.c:139:35: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable F_SETFL [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemonlib.c:184:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_UNIX [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemonlib.c:303:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemonlib.c:324:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable BUFSIZ [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemonlib.c:465:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemonlib.c:578:9: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemonlib.c:586:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemonlib.c:615:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable BUFSIZ [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemontest.c:62:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemontest.c:78:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIG_DFL [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authdaemontest.c:115:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authenumerate.c:31:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable NUMBUFSIZE [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authenumerate.c:74:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authinfo.c:27:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable MAILUSER [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authinfo.c:40:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable MAILGROUP [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authinfo.c:96:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PKGVERSION [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authinfo.c:27:20: portability: Non reentrant function 'getpwnam' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getpwnam_r'. [prohibitedgetpwnamCalled] courier-authlib-0.72.4/authinfo.c:40:19: portability: Non reentrant function 'getgrnam' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getgrnam_r'. [prohibitedgetgrnamCalled] courier-authlib-0.72.4/authinfo.c:27:17: style: Variable 'pw' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/authinfo.c:40:16: style: Variable 'gr' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/authldap.c:32:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authldap.c:28:12: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authldap.c:29:9: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authldaplib.cpp:511:1: error: Unmatched '}'. Configuration: '__GNUC__=1'. [syntaxError] courier-authlib-0.72.4/authmksock.c:30:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_UNIX [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authmksock.c:37:2: error: Resource leak: fd [resourceLeak] courier-authlib-0.72.4/authmksock.c:23:26: style: Parameter 'argv' can be declared as const array [constParameter] courier-authlib-0.72.4/authmoduser2.c:46:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authmoduser3.c:82:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authmoduser3.c:37:11: style: Variable 'q' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/authmoduser3.c:37:15: style: Variable 'r' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/authmysql.cpp:32:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authmysql.cpp:80:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authmysql.cpp:125:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authmysql.cpp:77:12: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authmysql.cpp:78:9: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authmysql.cpp:74:8: style: Variable 'user' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/authmysqllib.cpp:122:9: error: There is an unknown macro here somewhere. Configuration is required. If AUTHMYSQLRC is a macro then please configure it. [unknownMacro] courier-authlib-0.72.4/authoption.c:78:2: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpam.c:49:30: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable pam_response [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpam.c:106:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PAM_SUCCESS [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpam.c:241:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PAM_SUCCESS [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpam.c:284:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpam.c:288:20: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authpam.c:289:17: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authpasswd.c:46:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable BUFSIZ [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpasswd.c:54:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable BUFSIZ [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpasswd.c:55:8: style: Variable 'p' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/authpgsqllib.cpp:101:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PGRES_TUPLES_OK [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpgsqllib.cpp:107:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PGRES_COMMAND_OK [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpgsqllib.cpp:347:27: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CONNECTION_OK [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpgsqllib.cpp:761:4: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpgsqllib.cpp:802:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpgsqllib.cpp:848:4: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpgsqllib.cpp:799:12: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authpgsqllib.cpp:800:9: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authpgsqllib.cpp:454:28: performance:inconclusive: Technically the member function 'authpgsql_connection::getuserinfo' can be static (but you may consider moving to unnamed namespace). [functionStatic] courier-authlib-0.72.4/authpgsqllib.cpp:278:7: note: Technically the member function 'authpgsql_connection::getuserinfo' can be static (but you may consider moving to unnamed namespace). courier-authlib-0.72.4/authpgsqllib.cpp:454:28: note: Technically the member function 'authpgsql_connection::getuserinfo' can be static (but you may consider moving to unnamed namespace). courier-authlib-0.72.4/authpgsqllib.cpp:174:3: style: Class 'authpgsqlrc_file' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] courier-authlib-0.72.4/authpgsqllib.cpp:180:8: style: The function 'do_load' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] courier-authlib-0.72.4/authconfigfile.h:39:15: note: Virtual function in base class courier-authlib-0.72.4/authpgsqllib.cpp:180:8: note: Function in derived class courier-authlib-0.72.4/authpgsqllib.cpp:233:8: style: The function 'do_reload' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] courier-authlib-0.72.4/authconfigfile.h:40:15: note: Virtual function in base class courier-authlib-0.72.4/authpgsqllib.cpp:233:8: note: Function in derived class courier-authlib-0.72.4/authpgsqllib.cpp:754:43: style: Parameter 'authinfo' can be declared as reference to const [constParameterReference] courier-authlib-0.72.4/authpgsqllib.cpp:795:8: style: Variable 'user' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/authpipe.c:44:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable NUMBUFSIZE [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpipe.c:181:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIPE_PROGRAM [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpipe.c:40:64: style: Parameter 'authdata' can be declared as pointer to const. However it seems that 'auth_pipe' is a callback function, if 'authdata' is declared with const you might also need to cast function pointer(s). [constParameterCallback] courier-authlib-0.72.4/authpipe.c:172:2: note: You might need to cast the function pointer here courier-authlib-0.72.4/authpipe.c:40:64: note: Parameter 'authdata' can be declared as pointer to const courier-authlib-0.72.4/authpipe.c:46:8: style: Variable 'n' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/authpipelib.c:39:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIPE_PROGRAM [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpipelib.c:65:55: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpipelib.c:129:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpipelib.c:37:27: style: Parameter 'to' can be declared as const array [constParameter] courier-authlib-0.72.4/authpipelib.c:37:37: style: Parameter 'from' can be declared as const array [constParameter] courier-authlib-0.72.4/authpwd.c:45:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authpwd.c:42:9: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authpwd.c:43:9: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authpwdenumerate.c:36:14: portability: Non reentrant function 'getpwent' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getpwent_r'. [prohibitedgetpwentCalled] courier-authlib-0.72.4/authsasl.c:75:2: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authsaslclient.c:49:24: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authsaslclientcrammd5.c:26:41: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable hmac_md5 [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authsaslclientcramsha1.c:26:41: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable hmac_sha1 [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authsaslclientcramsha1.c:35:41: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable hmac_sha256 [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authsaslcram.c:34:7: style: Variable 'q' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/authsaslplain.c:30:7: style: Variable 'pw' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/authshadow.c:49:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authshadow.c:46:9: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authshadow.c:47:9: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authsqlite.cpp:71:4: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authsqlite.cpp:113:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authsqlite.cpp:154:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authsqlite.cpp:110:12: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authsqlite.cpp:111:9: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authsqlite.cpp:65:43: style: Parameter 'authinfo' can be declared as reference to const [constParameterReference] courier-authlib-0.72.4/authsqlite.cpp:105:8: style: Variable 'user' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/authsqlitelib.cpp:152:66: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AUTHSQLITERC [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authsqlitelib.cpp:244:36: performance:inconclusive: Technically the member function 'authsqlite_connection::escape' can be static (but you may consider moving to unnamed namespace). [functionStatic] courier-authlib-0.72.4/authsqlitelib.cpp:82:14: note: Technically the member function 'authsqlite_connection::escape' can be static (but you may consider moving to unnamed namespace). courier-authlib-0.72.4/authsqlitelib.cpp:244:36: note: Technically the member function 'authsqlite_connection::escape' can be static (but you may consider moving to unnamed namespace). courier-authlib-0.72.4/authsqlitelib.cpp:55:3: style: Class 'authsqliterc_file' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] courier-authlib-0.72.4/authsqlitelib.cpp:259:2: style: Class 'select_callback_info' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] courier-authlib-0.72.4/authsqlitelib.cpp:58:8: style: The function 'do_load' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] courier-authlib-0.72.4/authconfigfile.h:39:15: note: Virtual function in base class courier-authlib-0.72.4/authsqlitelib.cpp:58:8: note: Function in derived class courier-authlib-0.72.4/authsqlitelib.cpp:59:8: style: The function 'do_reload' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] courier-authlib-0.72.4/authconfigfile.h:40:15: note: Virtual function in base class courier-authlib-0.72.4/authsqlitelib.cpp:59:8: note: Function in derived class courier-authlib-0.72.4/authsqlitelib.cpp:248:16: warning: If memory allocation fails, then there is a possible null pointer dereference: q [nullPointerOutOfMemory] courier-authlib-0.72.4/authsqlitelib.cpp:246:25: note: Assuming allocation function fails courier-authlib-0.72.4/authsqlitelib.cpp:246:25: note: Assignment 'q=sqlite3_mprintf("%q",s.c_str())', assigned value is 0 courier-authlib-0.72.4/authsqlitelib.cpp:248:16: note: Null pointer dereference courier-authlib-0.72.4/authsqlitelib.cpp:498:32: style: C-style pointer casting [cstyleCast] courier-authlib-0.72.4/authsqlitelib.cpp:375:33: style: Parameter 'dummy' can be declared as pointer to const. However it seems that 'dummy_callback' is a callback function, if 'dummy' is declared with const you might also need to cast function pointer(s). [constParameterCallback] courier-authlib-0.72.4/authsqlitelib.cpp:456:41: note: You might need to cast the function pointer here courier-authlib-0.72.4/authsqlitelib.cpp:375:33: note: Parameter 'dummy' can be declared as pointer to const courier-authlib-0.72.4/authsyschangepwd.c:40:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authsyschangepwd.c:79:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIG_DFL [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authsyschangepwd.c:51:6: portability: Non reentrant function 'getpwnam' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getpwnam_r'. [prohibitedgetpwnamCalled] courier-authlib-0.72.4/authsyscommon.c:38:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/debug.c:146:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/debug.c:166:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authtest.c:24:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authtest.c:96:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authtest.c:113:23: style: Condition 'argc-argn>=1' is always true [knownConditionTrueFalse] courier-authlib-0.72.4/authtest.c:80:18: note: Assuming that condition 'argc-argn<=0' is not redundant courier-authlib-0.72.4/authtest.c:85:18: note: Assuming condition is false courier-authlib-0.72.4/authtest.c:102:18: note: Assuming that condition 'argc-argn>=2' is not redundant courier-authlib-0.72.4/authtest.c:113:23: note: Condition 'argc-argn>=1' is always true courier-authlib-0.72.4/authtest.c:28:51: style: Parameter 'dummy' can be declared as pointer to const. However it seems that 'callback_pre' is a callback function, if 'dummy' is declared with const you might also need to cast function pointer(s). [constParameterCallback] courier-authlib-0.72.4/authtest.c:116:8: note: You might need to cast the function pointer here courier-authlib-0.72.4/authtest.c:28:51: note: Parameter 'dummy' can be declared as pointer to const courier-authlib-0.72.4/authuserdb.c:54:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authuserdb.c:84:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable USERDB [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authuserdb.c:179:9: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authuserdb.c:180:9: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/authuserdbpwd.c:44:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable hmac_list [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authuserdbpwd.c:89:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authuserdbpwd.c:215:4: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authuserdbpwd.c:245:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable USERDB [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authuserdbpwd.c:321:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SBINDIR [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authuserdbpwd.c:412:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SBINDIR [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/authuserdbpwd.c:313:37: style:inconclusive: Function 'dochangepwd2' argument 1 names different: declaration 'service' definition 'services'. [funcArgNamesDifferent] courier-authlib-0.72.4/authuserdbpwd.c:228:37: note: Function 'dochangepwd2' argument 1 names different: declaration 'service' definition 'services'. courier-authlib-0.72.4/authuserdbpwd.c:313:37: note: Function 'dochangepwd2' argument 1 names different: declaration 'service' definition 'services'. courier-authlib-0.72.4/authuserdbpwd.c:52:12: style: Local variable 'i' shadows outer variable [shadowVariable] courier-authlib-0.72.4/authuserdbpwd.c:42:10: note: Shadowed declaration courier-authlib-0.72.4/authuserdbpwd.c:52:12: note: Shadow variable courier-authlib-0.72.4/checkpassword.c:38:8: style: Unused variable: cpass [unusedVariable] courier-authlib-0.72.4/checkpasswordsha1.c:48:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SSHA_RAND [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/checkpasswordsha1.c:54:18: error: Uninitialized variable: rand [legacyUninitvar] courier-authlib-0.72.4/cramlib.c:96:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/cramlib.c:89:24: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/cramlib.c:90:23: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] courier-authlib-0.72.4/cryptpassword.c:82:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable md5_hash_courier [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/liblog/logger.c:66:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/liblog/logger.c:223:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/liblog/logger.c:250:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/liblog/logger.c:290:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDWR [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/liblog/logger.c:351:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable LOG_DEST [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/liblog/logger.c:248:16: portability: Non reentrant function 'getgrnam' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getgrnam_r'. [prohibitedgetgrnamCalled] courier-authlib-0.72.4/liblog/logger.c:290:10: error: Allocation with open, checkfd doesn't release it. [leakNoVarFunctionCall] courier-authlib-0.72.4/liblog/logger.c:363:11: error: Allocation with open, checkfd doesn't release it. [leakNoVarFunctionCall] courier-authlib-0.72.4/liblog/logger.c:364:11: error: Allocation with open, checkfd doesn't release it. [leakNoVarFunctionCall] courier-authlib-0.72.4/liblog/logger.c:58:33: warning: If resource allocation fails, then there is a possible null pointer dereference: f [nullPointerOutOfResources] courier-authlib-0.72.4/liblog/logger.c:493:18: note: Assuming allocation function fails courier-authlib-0.72.4/liblog/logger.c:493:18: note: Assignment 'f=fdopen(0,"r")', assigned value is 0 courier-authlib-0.72.4/liblog/logger.c:495:32: note: Calling function 'do_logger', 3rd argument 'f' value is 0 courier-authlib-0.72.4/liblog/logger.c:52:17: note: Assuming condition is false courier-authlib-0.72.4/liblog/logger.c:58:33: note: Null pointer dereference courier-authlib-0.72.4/liblog/logger.c:496:10: warning: If resource allocation fails, then there is a possible null pointer dereference: f [nullPointerOutOfResources] courier-authlib-0.72.4/liblog/logger.c:493:18: note: Assuming allocation function fails courier-authlib-0.72.4/liblog/logger.c:493:18: note: Assignment 'f=fdopen(0,"r")', assigned value is 0 courier-authlib-0.72.4/liblog/logger.c:496:10: note: Null pointer dereference courier-authlib-0.72.4/liblog/logger.c:244:16: style: Variable 'gr' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/liblog/logger.c:405:20: style: Variable 'p' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/libs/bdbobj/bdbobj.c:55:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDONLY [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/bdbobj/bdbobj.c:43:4: warning:inconclusive: Found suspicious operator '*', result is not used. [constStatement] courier-authlib-0.72.4/libs/bdbobj/bdbobj.c:203:7: style: Variable 'p' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/libs/bdbobj/bdbobj.c:291:7: style: Variable 'p' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/libs/bdbobj/bdbobj2.c:22:47: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable R_FIRST [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/bdbobj/bdbobj2.c:62:47: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable R_NEXT [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/bdbobj/testbdb.C:92:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/bdbobj/bdbobj.h:76:6: style:inconclusive: Technically the member function 'BDbObj::IsOpen' can be const. [functionConst] courier-authlib-0.72.4/libs/bdbobj/testbdb.C:21:28: style: C-style pointer casting [cstyleCast] courier-authlib-0.72.4/libs/bdbobj/testbdb.C:22:12: style: C-style pointer casting [cstyleCast] courier-authlib-0.72.4/libs/bdbobj/testbdb.C:49:17: style: C-style pointer casting [cstyleCast] courier-authlib-0.72.4/libs/bdbobj/testbdb.C:56:16: style: C-style pointer casting [cstyleCast] courier-authlib-0.72.4/libs/bdbobj/testbdb.C:57:14: style: C-style pointer casting [cstyleCast] courier-authlib-0.72.4/libs/bdbobj/testbdb.C:72:17: style: C-style pointer casting [cstyleCast] courier-authlib-0.72.4/libs/bdbobj/bdbobj.h:71:23: performance: Function parameter 'filename' should be passed by const reference. [passedByValue] courier-authlib-0.72.4/libs/bdbobj/bdbobj.h:79:32: performance: Function parameter 'key' should be passed by const reference. [passedByValue] courier-authlib-0.72.4/libs/bdbobj/bdbobj.h:79:49: performance: Function parameter 'mode' should be passed by const reference. [passedByValue] courier-authlib-0.72.4/libs/bdbobj/bdbobj.h:92:26: performance: Function parameter 'key' should be passed by const reference. [passedByValue] courier-authlib-0.72.4/libs/bdbobj/bdbobj.h:97:26: performance: Function parameter 'key' should be passed by const reference. [passedByValue] courier-authlib-0.72.4/libs/bdbobj/bdbobj.h:102:25: performance: Function parameter 'key' should be passed by const reference. [passedByValue] courier-authlib-0.72.4/libs/bdbobj/bdbobj.h:102:42: performance: Function parameter 'val' should be passed by const reference. [passedByValue] courier-authlib-0.72.4/libs/bdbobj/bdbobj.h:102:59: performance: Function parameter 'mode' should be passed by const reference. [passedByValue] courier-authlib-0.72.4/libs/bdbobj/testbdb.C:6:22: style: Parameter 'p' can be declared as pointer to const [constParameterPointer] courier-authlib-0.72.4/libs/gdbmobj/gdbmobj.c:43:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GDBM_READER [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/gdbmobj/gdbmobj.c:97:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GDBM_REPLACE [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/gdbmobj/testgdbm.C:93:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/gdbmobj/gdbmobj.h:62:6: style:inconclusive: Technically the member function 'GdbmObj::IsOpen' can be const. [functionConst] courier-authlib-0.72.4/libs/gdbmobj/testgdbm.C:22:28: style: C-style pointer casting [cstyleCast] courier-authlib-0.72.4/libs/gdbmobj/testgdbm.C:23:12: style: C-style pointer casting [cstyleCast] courier-authlib-0.72.4/libs/gdbmobj/testgdbm.C:50:17: style: C-style pointer casting [cstyleCast] courier-authlib-0.72.4/libs/gdbmobj/testgdbm.C:57:16: style: C-style pointer casting [cstyleCast] courier-authlib-0.72.4/libs/gdbmobj/testgdbm.C:58:14: style: C-style pointer casting [cstyleCast] courier-authlib-0.72.4/libs/gdbmobj/testgdbm.C:73:17: style: C-style pointer casting [cstyleCast] courier-authlib-0.72.4/libs/gdbmobj/gdbmobj.h:57:23: performance: Function parameter 'filename' should be passed by const reference. [passedByValue] courier-authlib-0.72.4/libs/gdbmobj/gdbmobj.h:65:32: performance: Function parameter 'key' should be passed by const reference. [passedByValue] courier-authlib-0.72.4/libs/gdbmobj/gdbmobj.h:65:49: performance: Function parameter 'mode' should be passed by const reference. [passedByValue] courier-authlib-0.72.4/libs/gdbmobj/gdbmobj.h:78:26: performance: Function parameter 'key' should be passed by const reference. [passedByValue] courier-authlib-0.72.4/libs/gdbmobj/gdbmobj.h:83:26: performance: Function parameter 'key' should be passed by const reference. [passedByValue] courier-authlib-0.72.4/libs/gdbmobj/gdbmobj.h:88:24: performance: Function parameter 'key' should be passed by const reference. [passedByValue] courier-authlib-0.72.4/libs/gdbmobj/gdbmobj.h:88:41: performance: Function parameter 'val' should be passed by const reference. [passedByValue] courier-authlib-0.72.4/libs/gdbmobj/gdbmobj.h:88:58: performance: Function parameter 'mode' should be passed by const reference. [passedByValue] courier-authlib-0.72.4/libs/gdbmobj/testgdbm.C:7:22: style: Parameter 'p' can be declared as pointer to const [constParameterPointer] courier-authlib-0.72.4/libs/libhmac/md5hmactest.c:54:3: warning: %i in format string (no. 1) requires 'int' but the argument type is 'unsigned int'. [invalidPrintfArgType_sint] courier-authlib-0.72.4/libs/libhmac/sha1hmactest.c:54:3: warning: %i in format string (no. 1) requires 'int' but the argument type is 'unsigned int'. [invalidPrintfArgType_sint] courier-authlib-0.72.4/libs/libhmac/sha1hmactest.c:70:3: warning: %i in format string (no. 1) requires 'int' but the argument type is 'unsigned int'. [invalidPrintfArgType_sint] courier-authlib-0.72.4/libs/liblock/lockdaemon.c:107:2: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/liblock/lockdaemon.c:138:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDWR [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/liblock/lockdaemon.c:200:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDONLY [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/liblock/lockdaemon.c:246:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIG_DFL [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/liblock/lockdaemon.c:281:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDWR [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/liblock/lockdaemon.c:342:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDWR [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/liblock/lockdaemon.c:206:14: error: Resource leak: i [resourceLeak] courier-authlib-0.72.4/libs/liblock/lockdaemon.c:209:2: error: Resource leak: i [resourceLeak] courier-authlib-0.72.4/libs/liblock/lockdaemon.c:211:14: error: Resource leak: i [resourceLeak] courier-authlib-0.72.4/libs/liblock/lockdaemon.c:212:2: error: Resource leak: i [resourceLeak] courier-authlib-0.72.4/libs/liblock/lockdaemon.c:218:7: style: Variable 'p' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/libs/liblock/lockfcntl.c:27:34: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable F_RDLCK [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/liblock/lockflock.c:28:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/liblock/lockmail.c:55:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIG_DFL [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/liblock/lockmail.c:79:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable optarg [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/liblock/locktest.c:49:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIG_DFL [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/liblock/locktest.c:53:3: error: Memory leak: name [memleak] courier-authlib-0.72.4/libs/liblock/locktest.c:65:3: error: Resource leak: f [resourceLeak] courier-authlib-0.72.4/libs/liblock/locktest.c:65:3: error: Memory leak: name [memleak] courier-authlib-0.72.4/libs/liblock/mail.c:137:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/liblock/mail.c:273:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDWR [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/liblock/mail.c:306:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDONLY [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/liblock/mail.c:358:34: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDWR [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/liblock/mail.c:464:27: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDONLY [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/liblock/mail.c:496:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/liblock/mail.c:265:36: style:inconclusive: Function 'try_dotlock' argument 1 names different: declaration 'tmpfile' definition 'tmpname'. [funcArgNamesDifferent] courier-authlib-0.72.4/libs/liblock/mail.c:232:36: note: Function 'try_dotlock' argument 1 names different: declaration 'tmpfile' definition 'tmpname'. courier-authlib-0.72.4/libs/liblock/mail.c:265:36: note: Function 'try_dotlock' argument 1 names different: declaration 'tmpfile' definition 'tmpname'. courier-authlib-0.72.4/libs/liblock/mail.c:186:9: style: Local variable 'p' shadows outer argument [shadowArgument] courier-authlib-0.72.4/libs/liblock/mail.c:115:34: note: Shadowed declaration courier-authlib-0.72.4/libs/liblock/mail.c:186:9: note: Shadow variable courier-authlib-0.72.4/libs/liblock/mail.c:103:29: style: Parameter 'idbuf' can be declared as pointer to const [constParameterPointer] courier-authlib-0.72.4/libs/liblock/mail.c:103:42: style: Parameter 'myidbuf' can be declared as pointer to const [constParameterPointer] courier-authlib-0.72.4/libs/makedat/makedatprog.c:34:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/makedat/makedatprog.c:68:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/makedat/makedatprog.c:86:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/makedat/makedatprog.c:47:8: style: Variable 'buflen' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/md5/md5.c:37:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable MD5_WORD [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/md5/md5.c:195:22: style: Variable 'zero' can be declared as const array [constVariable] courier-authlib-0.72.4/libs/md5/md5.c:237:45: style: Parameter 'c' can be declared as pointer to const [constParameterPointer] courier-authlib-0.72.4/libs/md5/md5_hash.c:18:6: style: Variable 'a' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/md5/md5_hash.c:18:10: style: Variable 'b' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/md5/md5_hash.c:18:14: style: Variable 'c' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/md5/redhat-crypt-md5.c:112:17: style: Variable 'd' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/libs/numlib/changeuidgid.c:91:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ERANGE [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/numlib/changeuidgid.c:185:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ERANGE [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/random128/random128.c:31:30: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable MD5_DIGEST [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/random128/random128.c:72:12: style: Variable 'p' is reassigned a value before the old one has been used. [redundantAssignment] courier-authlib-0.72.4/libs/random128/random128.c:69:4: note: p is assigned courier-authlib-0.72.4/libs/random128/random128.c:72:12: note: p is overwritten courier-authlib-0.72.4/libs/rfc822/encode.c:142:7: style: Variable 'a' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/rfc822/encode.c:142:11: style: Variable 'b' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/rfc822/encode.c:142:15: style: Variable 'c' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/rfc822/encodeautodetect.c:27:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/rfc822/encodeautodetect.c:81:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/rfc822/encodeautodetect.c:92:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/rfc822/imaprefs.c:91:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable hashtable [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/rfc822/imaprefs.c:140:69: style: Parameter 'mt' can be declared as pointer to const [constParameterPointer] courier-authlib-0.72.4/libs/rfc822/imaprefs.c:157:46: style: Parameter 'mt' can be declared as pointer to const [constParameterPointer] courier-authlib-0.72.4/libs/rfc822/imapsubj.c:23:8: style: Variable 'orig_p' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/libs/rfc822/reftest.c:171:45: style: Parameter 'p' can be declared as pointer to const [constParameterPointer] courier-authlib-0.72.4/libs/rfc822/rfc2047.c:63:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable IDNA_SUCCESS [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/rfc822/rfc2047.c:89:8: style: Variable 'cp' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:345:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable IDNA_SUCCESS [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:520:32: style: Condition 'rfc822_display_addr(a,n,charset,save_unicode_text,&nbuf)<0' is always false [knownConditionTrueFalse] courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:519:26: note: Calling function 'rfc822_display_addr' returns 0 courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:520:32: note: Condition 'rfc822_display_addr(a,n,charset,save_unicode_text,&nbuf)<0' is always false courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:529:32: style: Condition 'rfc822_display_addr(a,n,charset,save_unicode_text,&nbuf)<0' is always false [knownConditionTrueFalse] courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:528:26: note: Calling function 'rfc822_display_addr' returns 0 courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:529:32: note: Condition 'rfc822_display_addr(a,n,charset,save_unicode_text,&nbuf)<0' is always false courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:674:14: style: Condition 'errcode<0' is always false [knownConditionTrueFalse] courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:671:29: note: Calling function 'rfc822_display_addr' returns 0 courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:671:29: note: Assignment 'errcode=rfc822_display_addr(rfcp,index,chset,rfc822_display_hdrvalue_tobuf_cnt,&nbuf)', assigned value is 0 courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:674:14: note: Condition 'errcode<0' is always false courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:685:14: style: Condition 'errcode<0' is always false [knownConditionTrueFalse] courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:682:29: note: Calling function 'rfc822_display_addr' returns 0 courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:682:29: note: Assignment 'errcode=rfc822_display_addr(rfcp,index,chset,rfc822_display_hdrvalue_tobuf_save,&nbuf)', assigned value is 0 courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:685:14: note: Condition 'errcode<0' is always false courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:747:14: style: Condition 'errcode<0' is always false [knownConditionTrueFalse] courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:743:33: note: Calling function 'rfc822_display_addr_str' returns 0 courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:743:33: note: Assignment 'errcode=rfc822_display_addr_str(tok,chset,rfc822_display_hdrvalue_tobuf_cnt,&s)', assigned value is 0 courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:747:14: note: Condition 'errcode<0' is always false courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:758:14: style: Condition 'errcode<0' is always false [knownConditionTrueFalse] courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:755:33: note: Calling function 'rfc822_display_addr_str' returns 0 courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:755:33: note: Assignment 'errcode=rfc822_display_addr_str(tok,chset,rfc822_display_hdrvalue_tobuf_save,&s)', assigned value is 0 courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:758:14: note: Condition 'errcode<0' is always false courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:441:11: style: Local variable 'i' shadows outer variable [shadowVariable] courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:413:10: note: Shadowed declaration courier-authlib-0.72.4/libs/rfc822/rfc2047u.c:441:11: note: Shadow variable courier-authlib-0.72.4/libs/rfc822/rfc822.c:655:40: style:inconclusive: Function 'rfc822_print' argument 1 names different: declaration 'a' definition 'rfcp'. [funcArgNamesDifferent] courier-authlib-0.72.4/libs/rfc822/rfc822.h:118:40: note: Function 'rfc822_print' argument 1 names different: declaration 'a' definition 'rfcp'. courier-authlib-0.72.4/libs/rfc822/rfc822.c:655:40: note: Function 'rfc822_print' argument 1 names different: declaration 'a' definition 'rfcp'. courier-authlib-0.72.4/libs/rfc822/rfc822.c:661:47: style:inconclusive: Function 'rfc822_print_common' argument 1 names different: declaration 'a' definition 'rfcp'. [funcArgNamesDifferent] courier-authlib-0.72.4/libs/rfc822/rfc822.h:124:47: note: Function 'rfc822_print_common' argument 1 names different: declaration 'a' definition 'rfcp'. courier-authlib-0.72.4/libs/rfc822/rfc822.c:661:47: note: Function 'rfc822_print_common' argument 1 names different: declaration 'a' definition 'rfcp'. courier-authlib-0.72.4/libs/rfc822/rfc822.c:789:47: style:inconclusive: Function 'rfc822t_alloc_new' argument 1 names different: declaration 'p' definition 'addr'. [funcArgNamesDifferent] courier-authlib-0.72.4/libs/rfc822/rfc822.h:88:47: note: Function 'rfc822t_alloc_new' argument 1 names different: declaration 'p' definition 'addr'. courier-authlib-0.72.4/libs/rfc822/rfc822.c:789:47: note: Function 'rfc822t_alloc_new' argument 1 names different: declaration 'p' definition 'addr'. courier-authlib-0.72.4/libs/rfc822/rfc822.c:313:7: style: Local variable 'j' shadows outer variable [shadowVariable] courier-authlib-0.72.4/libs/rfc822/rfc822.c:250:11: note: Shadowed declaration courier-authlib-0.72.4/libs/rfc822/rfc822.c:313:7: note: Shadow variable courier-authlib-0.72.4/libs/rfc822/rfc822_getaddrs.c:13:3: style: Redundant assignment of 'c' to itself. [selfAssignment] courier-authlib-0.72.4/libs/rfc822/rfc822_getaddrs.c:68:24: style: Variable 'start' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/libs/rfc822/rfc822_getaddrs.c:13:3: style: Variable 'c' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/rfc822/rfc822_mkdate.c:87:4: portability: Non reentrant function 'gmtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'gmtime_r'. [prohibitedgmtimeCalled] courier-authlib-0.72.4/libs/rfc822/rfc822_mkdate.c:44:12: style: Variable 'p' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/libs/rfc822/rfc822_parsedt.c:244:18: portability: Non reentrant function 'gmtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'gmtime_r'. [prohibitedgmtimeCalled] courier-authlib-0.72.4/libs/rfc822/rfc822_parsedt.c:244:12: style: Variable 'tmptr' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/libs/rfc822/rfc822hdr.c:45:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EOF [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/rfc822/testsuite.c:42:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/rfc822/testsuite.c:47:33: style: Condition 'buf[0]' is always true [knownConditionTrueFalse] courier-authlib-0.72.4/libs/rfc822/testsuite.c:14:3: style: Redundant assignment of 'p' to itself. [selfAssignment] courier-authlib-0.72.4/libs/rfc822/testsuite.c:20:3: style: Redundant assignment of 'p' to itself. [selfAssignment] courier-authlib-0.72.4/libs/rfc822/testsuite.c:14:3: style: Variable 'p' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/rfc822/testsuite.c:20:3: style: Variable 'p' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/sha1/sha1.c:24:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SHA1_WORD [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/sha1/sha1_hash.c:17:6: style: Variable 'a' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/sha1/sha1_hash.c:17:10: style: Variable 'b' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/sha1/sha1_hash.c:17:14: style: Variable 'c' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/sha1/sha1_hash.c:52:7: style: Variable 'a' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/sha1/sha1_hash.c:52:11: style: Variable 'b' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/sha1/sha1_hash.c:52:15: style: Variable 'c' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/sha1/sha256_hash.c:17:6: style: Variable 'a' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/sha1/sha256_hash.c:17:10: style: Variable 'b' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/sha1/sha256_hash.c:17:14: style: Variable 'c' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/sha1/sha512.c:51:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SHA512_WORD [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/libs/sha1/sha512_hash.c:17:6: style: Variable 'a' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/sha1/sha512_hash.c:17:10: style: Variable 'b' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/sha1/sha512_hash.c:17:14: style: Variable 'c' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/preauthcustom.c:43:6: style: Condition 'rc' is always true [knownConditionTrueFalse] courier-authlib-0.72.4/preauthcustom.c:41:19: note: Calling function 'do_auth_custom' returns -1 courier-authlib-0.72.4/preauthcustom.c:41:19: note: Assignment 'rc=do_auth_custom(user,&auth)', assigned value is -1 courier-authlib-0.72.4/preauthcustom.c:43:6: note: Condition 'rc' is always true courier-authlib-0.72.4/preauthcustom.c:66:64: style: Parameter 'authinfo' can be declared as pointer to const [constParameterPointer] courier-authlib-0.72.4/preauthpam.c:36:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/preauthpam.c:34:10: portability: Non reentrant function 'getpwnam' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getpwnam_r'. [prohibitedgetpwnamCalled] courier-authlib-0.72.4/preauthpam.c:27:16: style: Variable 'pw' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/preauthpwd.c:33:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/preauthpwd.c:31:10: portability: Non reentrant function 'getpwnam' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getpwnam_r'. [prohibitedgetpwnamCalled] courier-authlib-0.72.4/preauthpwd.c:27:16: style: Variable 'pw' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/preauthshadow.c:40:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/preauthshadow.c:38:10: portability: Non reentrant function 'getpwnam' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getpwnam_r'. [prohibitedgetpwnamCalled] courier-authlib-0.72.4/preauthshadow.c:44:11: portability: Non reentrant function 'getspnam' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getspnam_r'. [prohibitedgetspnamCalled] courier-authlib-0.72.4/preauthshadow.c:32:16: style: Variable 'pw' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/preauthshadow.c:33:14: style: Variable 'spw' can be declared as pointer to const [constVariablePointer] courier-authlib-0.72.4/preauthuserdbcommon.c:37:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable USERDB [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/preauthuserdbcommon.c:131:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable USERDB [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/userdb/userdb.c:50:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/userdb/userdb.c:101:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/userdb/userdb.c:191:2: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/userdb/userdb.c:321:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/userdb/userdb.c:232:42: style: Parameter 'key' can be declared as pointer to const [constParameterPointer] courier-authlib-0.72.4/userdb/userdb.c:233:14: style: Parameter 'val' can be declared as pointer to const [constParameterPointer] courier-authlib-0.72.4/userdb/userdb2.c:30:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/userdb/userdbpw.c:87:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable BUFSIZ [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/userdb/userdbpw.c:97:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable BUFSIZ [valueFlowBailoutIncompleteVar] courier-authlib-0.72.4/userdb/userdbpw.c:205:5: style: Variable 'md5' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/userdb/userdbpw.c:239:10: style: Variable 'salt[1]' is assigned a value that is never used. [unreadVariable] courier-authlib-0.72.4/libs/sha1/sha1.c:153:19: error: Pointer arithmetic overflow; 'd' buffer size is 20 [ctuPointerArith] courier-authlib-0.72.4/libs/sha1/sha1.c:191:21: note: Calling function sha1_context_digest, 2nd argument is uninitialized courier-authlib-0.72.4/libs/sha1/sha1.c:153:19: note: Using argument d courier-authlib-0.72.4/libs/sha1/sha256.c:166:20: error: Pointer arithmetic overflow; 'd' buffer size is 32 [ctuPointerArith] courier-authlib-0.72.4/libs/sha1/sha256.c:204:23: note: Calling function sha256_context_digest, 2nd argument is uninitialized courier-authlib-0.72.4/libs/sha1/sha256.c:166:20: note: Using argument d courier-authlib-0.72.4/libs/sha1/sha512.c:185:20: error: Pointer arithmetic overflow; 'd' buffer size is 64 [ctuPointerArith] courier-authlib-0.72.4/libs/sha1/sha512.c:231:23: note: Calling function sha512_context_digest, 2nd argument is uninitialized courier-authlib-0.72.4/libs/sha1/sha512.c:185:20: note: Using argument d courier-authlib-0.72.4/liblog/logger.c:58:33: warning: If resource allocation fails, then there is a possible null pointer dereference: f [ctunullpointerOutOfResources] courier-authlib-0.72.4/liblog/logger.c:493:18: note: Assuming allocation function fails courier-authlib-0.72.4/liblog/logger.c:493:18: note: Assignment 'f=fdopen(0,"r")', assigned value is 0 courier-authlib-0.72.4/liblog/logger.c:495:12: note: Calling function do_logger, 3rd argument is null courier-authlib-0.72.4/liblog/logger.c:58:33: note: Dereferencing argument f that is null diff: head courier-authlib-0.72.4/authdaemond.c:396:44: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] 2.17.0 courier-authlib-0.72.4/authpgsqllib.cpp:278:7: performance:inconclusive: Technically the member function 'authpgsql_connection::getuserinfo' can be static (but you may consider moving to unnamed namespace). [functionStatic] courier-authlib-0.72.4/authpgsqllib.cpp:454:28: note: Technically the member function 'authpgsql_connection::getuserinfo' can be static (but you may consider moving to unnamed namespace). courier-authlib-0.72.4/authpgsqllib.cpp:278:7: note: Technically the member function 'authpgsql_connection::getuserinfo' can be static (but you may consider moving to unnamed namespace). head courier-authlib-0.72.4/authpgsqllib.cpp:454:28: performance:inconclusive: Technically the member function 'authpgsql_connection::getuserinfo' can be static (but you may consider moving to unnamed namespace). [functionStatic] courier-authlib-0.72.4/authpgsqllib.cpp:278:7: note: Technically the member function 'authpgsql_connection::getuserinfo' can be static (but you may consider moving to unnamed namespace). courier-authlib-0.72.4/authpgsqllib.cpp:454:28: note: Technically the member function 'authpgsql_connection::getuserinfo' can be static (but you may consider moving to unnamed namespace). head courier-authlib-0.72.4/authsqlitelib.cpp:244:36: performance:inconclusive: Technically the member function 'authsqlite_connection::escape' can be static (but you may consider moving to unnamed namespace). [functionStatic] courier-authlib-0.72.4/authsqlitelib.cpp:82:14: note: Technically the member function 'authsqlite_connection::escape' can be static (but you may consider moving to unnamed namespace). courier-authlib-0.72.4/authsqlitelib.cpp:244:36: note: Technically the member function 'authsqlite_connection::escape' can be static (but you may consider moving to unnamed namespace). 2.17.0 courier-authlib-0.72.4/authsqlitelib.cpp:82:14: performance:inconclusive: Technically the member function 'authsqlite_connection::escape' can be static (but you may consider moving to unnamed namespace). [functionStatic] courier-authlib-0.72.4/authsqlitelib.cpp:244:36: note: Technically the member function 'authsqlite_connection::escape' can be static (but you may consider moving to unnamed namespace). courier-authlib-0.72.4/authsqlitelib.cpp:82:14: note: Technically the member function 'authsqlite_connection::escape' can be static (but you may consider moving to unnamed namespace). DONE