2024-04-21 02:04 ftp://ftp.de.debian.org/debian/pool/main/p/pianobar/pianobar_2022.04.01.orig.tar.bz2 cppcheck-options: --library=posix --library=gnu --library=libcurl --showtime=top5 --check-library --inconclusive --enable=style,information --inline-suppr --disable=missingInclude --suppress=unmatchedSuppression --template=daca2 --debug-warnings --suppress=autoNoType --suppress=valueFlowBailout --suppress=bailoutUninitVar --suppress=symbolDatabaseWarning -D__GNUC__ --platform=unix64 -j1 platform: Linux-6.6.15-amd64-x86_64-with-glibc2.37 python: 3.11.8 client-version: 1.3.49 compiler: g++ (Debian 13.2.0-13) 13.2.0 cppcheck: head 2.13.0 head-info: fb15ac6 (2024-04-20 19:16:41 +0200) count: 69 57 elapsed-time: 3.5 21.0 head-timing-info: Tokenizer::simplifyTokens1::ValueFlow: 2.87309s (avg. 0.20522s - 14 result(s)) valueFlowAfterAssign(tokenlist, symboldatabase, errorLogger, settings, skippedFunctions): 0.897314s (avg. 0.0263916s - 34 result(s)) valueFlowCondition(SimpleConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions): 0.673504s (avg. 0.0198089s - 34 result(s)) valueFlowLifetime(tokenlist, errorLogger, settings): 0.403738s (avg. 0.00841121s - 48 result(s)) valueFlowForLoop(tokenlist, symboldatabase, errorLogger, settings): 0.37439s (avg. 0.0110115s - 34 result(s)) Overall time: 3.16035s old-timing-info: Tokenizer::simplifyTokens1::ValueFlow: 20.2013s (avg. 1.44295s - 14 result(s)) valueFlowLifetime(tokenlist, errorLogger, settings): 6.49409s (avg. 0.135294s - 48 result(s)) valueFlowForLoop(tokenlist, symboldatabase, errorLogger, settings): 5.29312s (avg. 0.15568s - 34 result(s)) valueFlowCondition(SimpleConditionHandler{}, tokenlist, symboldatabase, errorLogger, settings, skippedFunctions): 2.95654s (avg. 0.086957s - 34 result(s)) valueFlowAfterAssign(tokenlist, symboldatabase, errorLogger, settings, skippedFunctions): 2.61631s (avg. 0.0769501s - 34 result(s)) Overall time: 20.4751s head results: pianobar-2022.04.01/src/debug.h:56:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/libpiano/list.c:60:75: style: Parameter 'e' can be declared as pointer to const [constParameterPointer] pianobar-2022.04.01/src/libpiano/piano.c:48:32: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GPG_ERR_NO_ERROR [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/libpiano/request.c:218:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_MUSICTYPE_INVALID [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/libpiano/request.c:103:6: warning: %i in format string (no. 2) requires 'int' but the argument type is 'unsigned int'. [invalidPrintfArgType_sint] pianobar-2022.04.01/src/libpiano/request.c:517:3: warning: %i in format string (no. 3) requires 'int' but the argument type is 'unsigned int'. [invalidPrintfArgType_sint] pianobar-2022.04.01/src/libpiano/request.c:502:4: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] pianobar-2022.04.01/src/libpiano/response.c:624:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable json_type_array [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/libpiano/response.c:482:9: error: Memory leak: tmpGenreCategory.name [memleak] pianobar-2022.04.01/src/libpiano/response.c:625:15: style: Local variable 'i' shadows outer variable [shadowVariable] pianobar-2022.04.01/src/libpiano/response.c:619:17: note: Shadowed declaration pianobar-2022.04.01/src/libpiano/response.c:625:15: note: Shadow variable pianobar-2022.04.01/src/libpiano/response.c:120:30: style: Variable 'reqData' can be declared as pointer to const [constVariablePointer] pianobar-2022.04.01/src/libpiano/response.c:698:38: style: Variable 'reqData' can be declared as pointer to const [constVariablePointer] pianobar-2022.04.01/src/main.c:73:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_LOGIN [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/main.c:120:60: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/main.c:221:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_GET_PLAYLIST [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/main.c:269:5: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_RET_OK [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/main.c:286:51: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_RET_OK [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/main.c:441:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIG_IGN [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/main.c:282:61: style: Parameter 'playerThread' can be declared as pointer to const [constParameterPointer] pianobar-2022.04.01/src/player.c:80:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_LOG_FATAL [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/player.c:217:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable discard [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/player.c:286:69: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PRIx64 [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/player.c:345:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AO_FMT_NATIVE [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/player.c:422:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AVERROR_EOF [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/player.c:536:30: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AVERROR_INVALIDDATA [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/player.c:570:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AVERROR_EOF [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/player.c:276:28: style: Variable 'cp' can be declared as pointer to const [constVariablePointer] pianobar-2022.04.01/src/player.c:199:28: style: int result is assigned to long variable. If the variable is long to avoid loss of information, then you have loss of information. [truncLongCastAssignment] pianobar-2022.04.01/src/settings.c:162:27: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_AQ_HIGH [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/settings.c:58:29: portability: Non reentrant function 'getpwuid' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getpwuid_r'. [prohibitedgetpwuidCalled] pianobar-2022.04.01/src/settings.c:50:8: style: Variable 'home' can be declared as pointer to const [constVariablePointer] pianobar-2022.04.01/src/settings.c:58:24: style: Variable 'pw' can be declared as pointer to const [constVariablePointer] pianobar-2022.04.01/src/settings.c:71:8: style: Variable 'xdgConfigDir' can be declared as pointer to const [constVariablePointer] pianobar-2022.04.01/src/settings.c:227:17: style: Variable 'ret' can be declared as pointer to const [constVariablePointer] pianobar-2022.04.01/src/settings.c:449:9: style: Variable 'tmpProxy' can be declared as pointer to const [constVariablePointer] pianobar-2022.04.01/src/settings.c:465:40: style: Parameter 'station' can be declared as pointer to const [constParameterPointer] pianobar-2022.04.01/src/settings.c:465:64: style: Parameter 'settings' can be declared as pointer to const [constParameterPointer] pianobar-2022.04.01/src/terminal.c:49:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ECHO [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/terminal.c:56:27: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable TCSANOW [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui.c:109:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui.c:222:2: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CURLOPT_URL [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui.c:299:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_RET_OK [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui.c:622:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_SEARCH [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui.c:867:81: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui.c:806:22: style: Redundant condition: filter!=NULL. 'A || (!A && B)' is equivalent to 'A || B' [redundantCondition] pianobar-2022.04.01/src/ui.c:941:4: portability: %zd in format string (no. 1) requires 'ssize_t' but the argument type is 'size_t {aka unsigned long}'. [invalidPrintfArgType_sint] pianobar-2022.04.01/src/ui.c:945:5: portability: %zd in format string (no. 1) requires 'ssize_t' but the argument type is 'size_t {aka unsigned long}'. [invalidPrintfArgType_sint] pianobar-2022.04.01/src/ui.c:136:34: style: Parameter 'ptr' can be declared as pointer to const. However it seems that 'httpFetchCb' is a callback function, if 'ptr' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui.c:225:2: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui.c:136:34: note: Parameter 'ptr' can be declared as pointer to const pianobar-2022.04.01/src/ui.c:609:17: style: Variable 'tmpArtist' can be declared as pointer to const [constVariablePointer] pianobar-2022.04.01/src/ui.c:610:15: style: Variable 'tmpSong' can be declared as pointer to const [constVariablePointer] pianobar-2022.04.01/src/ui.c:747:19: style: Parameter 'station' can be declared as pointer to const [constParameterPointer] pianobar-2022.04.01/src/ui.c:885:19: style: Variable 'songStation' can be declared as pointer to const [constVariablePointer] pianobar-2022.04.01/src/ui_act.c:79:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_TRANSFORM_STATION [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui_act.c:119:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_ADD_SEED [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui_act.c:149:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_RATE_BAN [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui_act.c:166:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_MUSICTYPE_INVALID [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui_act.c:186:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_MUSICTYPE_INVALID [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui_act.c:216:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_MUSICTYPE_INVALID [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui_act.c:248:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_DELETE_STATION [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui_act.c:273:6: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_EXPLAIN [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui_act.c:336:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_MUSICTYPE_INVALID [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui_act.c:412:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_RATE_LOVE [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui_act.c:472:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_RENAME_STATION [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui_act.c:497:6: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_ADD_TIRED_SONG [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui_act.c:637:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_BOOKMARK_SONG [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui_act.c:684:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_GET_SETTINGS [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui_act.c:780:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_GET_STATION_INFO [valueFlowBailoutIncompleteVar] pianobar-2022.04.01/src/ui_act.c:507:22: style: Variable 'nextSong' can be declared as pointer to const [constVariablePointer] pianobar-2022.04.01/src/ui_readline.c:127:30: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] diff: head pianobar-2022.04.01/src/main.c:120:60: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] head pianobar-2022.04.01/src/main.c:221:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_GET_PLAYLIST [valueFlowBailoutIncompleteVar] head pianobar-2022.04.01/src/main.c:269:5: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_RET_OK [valueFlowBailoutIncompleteVar] head pianobar-2022.04.01/src/main.c:286:51: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_RET_OK [valueFlowBailoutIncompleteVar] head pianobar-2022.04.01/src/main.c:441:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIG_IGN [valueFlowBailoutIncompleteVar] head pianobar-2022.04.01/src/main.c:73:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_LOGIN [valueFlowBailoutIncompleteVar] head pianobar-2022.04.01/src/player.c:217:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable discard [valueFlowBailoutIncompleteVar] head pianobar-2022.04.01/src/player.c:286:69: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PRIx64 [valueFlowBailoutIncompleteVar] head pianobar-2022.04.01/src/player.c:345:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AO_FMT_NATIVE [valueFlowBailoutIncompleteVar] head pianobar-2022.04.01/src/player.c:422:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AVERROR_EOF [valueFlowBailoutIncompleteVar] head pianobar-2022.04.01/src/player.c:536:30: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AVERROR_INVALIDDATA [valueFlowBailoutIncompleteVar] head pianobar-2022.04.01/src/player.c:570:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AVERROR_EOF [valueFlowBailoutIncompleteVar] head pianobar-2022.04.01/src/player.c:80:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_LOG_FATAL [valueFlowBailoutIncompleteVar] head pianobar-2022.04.01/src/terminal.c:56:27: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable TCSANOW [valueFlowBailoutIncompleteVar] head pianobar-2022.04.01/src/ui.c:109:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] head pianobar-2022.04.01/src/ui.c:222:2: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CURLOPT_URL [valueFlowBailoutIncompleteVar] head pianobar-2022.04.01/src/ui.c:299:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_RET_OK [valueFlowBailoutIncompleteVar] head pianobar-2022.04.01/src/ui.c:622:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_SEARCH [valueFlowBailoutIncompleteVar] head pianobar-2022.04.01/src/ui.c:867:81: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] 2.13.0 pianobar-2022.04.01/src/ui_act.c:103:1: style: Parameter 'selSong' can be declared as pointer to const. However it seems that 'BarUiActAddMusic' is a callback function, if 'selSong' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:56:25: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:103:1: note: Parameter 'selSong' can be declared as pointer to const head pianobar-2022.04.01/src/ui_act.c:119:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_ADD_SEED [valueFlowBailoutIncompleteVar] 2.13.0 pianobar-2022.04.01/src/ui_act.c:129:1: style: Parameter 'selStation' can be declared as pointer to const. However it seems that 'BarUiActBanSong' is a callback function, if 'selStation' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:55:23: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:129:1: note: Parameter 'selStation' can be declared as pointer to const head pianobar-2022.04.01/src/ui_act.c:149:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_RATE_BAN [valueFlowBailoutIncompleteVar] 2.13.0 pianobar-2022.04.01/src/ui_act.c:161:1: style: Parameter 'selSong' can be declared as pointer to const. However it seems that 'BarUiActCreateStation' is a callback function, if 'selSong' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:58:24: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:161:1: note: Parameter 'selSong' can be declared as pointer to const 2.13.0 pianobar-2022.04.01/src/ui_act.c:161:1: style: Parameter 'selStation' can be declared as pointer to const. However it seems that 'BarUiActCreateStation' is a callback function, if 'selStation' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:58:24: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:161:1: note: Parameter 'selStation' can be declared as pointer to const head pianobar-2022.04.01/src/ui_act.c:166:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_MUSICTYPE_INVALID [valueFlowBailoutIncompleteVar] 2.13.0 pianobar-2022.04.01/src/ui_act.c:179:1: style: Parameter 'selSong' can be declared as pointer to const. However it seems that 'BarUiActCreateStationFromSong' is a callback function, if 'selSong' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:97:22: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:179:1: note: Parameter 'selSong' can be declared as pointer to const 2.13.0 pianobar-2022.04.01/src/ui_act.c:179:1: style: Parameter 'selStation' can be declared as pointer to const. However it seems that 'BarUiActCreateStationFromSong' is a callback function, if 'selStation' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:97:22: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:179:1: note: Parameter 'selStation' can be declared as pointer to const head pianobar-2022.04.01/src/ui_act.c:186:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_MUSICTYPE_INVALID [valueFlowBailoutIncompleteVar] 2.13.0 pianobar-2022.04.01/src/ui_act.c:209:1: style: Parameter 'selSong' can be declared as pointer to const. However it seems that 'BarUiActAddSharedStation' is a callback function, if 'selSong' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:69:24: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:209:1: note: Parameter 'selSong' can be declared as pointer to const 2.13.0 pianobar-2022.04.01/src/ui_act.c:209:1: style: Parameter 'selStation' can be declared as pointer to const. However it seems that 'BarUiActAddSharedStation' is a callback function, if 'selStation' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:69:24: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:209:1: note: Parameter 'selStation' can be declared as pointer to const head pianobar-2022.04.01/src/ui_act.c:216:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_MUSICTYPE_INVALID [valueFlowBailoutIncompleteVar] 2.13.0 pianobar-2022.04.01/src/ui_act.c:238:1: style: Parameter 'selSong' can be declared as pointer to const. However it seems that 'BarUiActDeleteStation' is a callback function, if 'selSong' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:60:25: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:238:1: note: Parameter 'selSong' can be declared as pointer to const head pianobar-2022.04.01/src/ui_act.c:248:7: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_DELETE_STATION [valueFlowBailoutIncompleteVar] 2.13.0 pianobar-2022.04.01/src/ui_act.c:263:1: style: Parameter 'selStation' can be declared as pointer to const. However it seems that 'BarUiActExplain' is a callback function, if 'selStation' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:62:22: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:263:1: note: Parameter 'selStation' can be declared as pointer to const head pianobar-2022.04.01/src/ui_act.c:273:6: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_EXPLAIN [valueFlowBailoutIncompleteVar] 2.13.0 pianobar-2022.04.01/src/ui_act.c:282:1: style: Parameter 'selSong' can be declared as pointer to const. However it seems that 'BarUiActStationFromGenre' is a callback function, if 'selSong' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:64:24: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:282:1: note: Parameter 'selSong' can be declared as pointer to const 2.13.0 pianobar-2022.04.01/src/ui_act.c:282:1: style: Parameter 'selStation' can be declared as pointer to const. However it seems that 'BarUiActStationFromGenre' is a callback function, if 'selStation' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:64:24: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:282:1: note: Parameter 'selStation' can be declared as pointer to const head pianobar-2022.04.01/src/ui_act.c:336:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_MUSICTYPE_INVALID [valueFlowBailoutIncompleteVar] 2.13.0 pianobar-2022.04.01/src/ui_act.c:392:1: style: Parameter 'selStation' can be declared as pointer to const. However it seems that 'BarUiActLoveSong' is a callback function, if 'selStation' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:53:22: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:392:1: note: Parameter 'selStation' can be declared as pointer to const head pianobar-2022.04.01/src/ui_act.c:412:19: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_RATE_LOVE [valueFlowBailoutIncompleteVar] 2.13.0 pianobar-2022.04.01/src/ui_act.c:454:1: style: Parameter 'selSong' can be declared as pointer to const. However it seems that 'BarUiActRenameStation' is a callback function, if 'selSong' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:76:25: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:454:1: note: Parameter 'selSong' can be declared as pointer to const head pianobar-2022.04.01/src/ui_act.c:472:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_RENAME_STATION [valueFlowBailoutIncompleteVar] 2.13.0 pianobar-2022.04.01/src/ui_act.c:490:1: style: Parameter 'selStation' can be declared as pointer to const. However it seems that 'BarUiActTempBanSong' is a callback function, if 'selStation' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:80:22: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:490:1: note: Parameter 'selStation' can be declared as pointer to const head pianobar-2022.04.01/src/ui_act.c:497:6: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_ADD_TIRED_SONG [valueFlowBailoutIncompleteVar] 2.13.0 pianobar-2022.04.01/src/ui_act.c:556:1: style: Parameter 'selSong' can be declared as pointer to const. However it seems that 'BarUiActSelectQuickMix' is a callback function, if 'selSong' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:84:25: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:556:1: note: Parameter 'selSong' can be declared as pointer to const 2.13.0 pianobar-2022.04.01/src/ui_act.c:556:1: style: Parameter 'selStation' can be declared as pointer to const. However it seems that 'BarUiActSelectQuickMix' is a callback function, if 'selStation' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:84:25: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:556:1: note: Parameter 'selStation' can be declared as pointer to const 2.13.0 pianobar-2022.04.01/src/ui_act.c:625:1: style: Parameter 'selStation' can be declared as pointer to const. However it seems that 'BarUiActBookmark' is a callback function, if 'selStation' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:87:22: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:625:1: note: Parameter 'selStation' can be declared as pointer to const head pianobar-2022.04.01/src/ui_act.c:637:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_BOOKMARK_SONG [valueFlowBailoutIncompleteVar] 2.13.0 pianobar-2022.04.01/src/ui_act.c:673:1: style: Parameter 'selSong' can be declared as pointer to const. However it seems that 'BarUiActSettings' is a callback function, if 'selSong' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:105:24: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:673:1: note: Parameter 'selSong' can be declared as pointer to const 2.13.0 pianobar-2022.04.01/src/ui_act.c:673:1: style: Parameter 'selStation' can be declared as pointer to const. However it seems that 'BarUiActSettings' is a callback function, if 'selStation' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:105:24: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:673:1: note: Parameter 'selStation' can be declared as pointer to const head pianobar-2022.04.01/src/ui_act.c:684:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_GET_SETTINGS [valueFlowBailoutIncompleteVar] 2.13.0 pianobar-2022.04.01/src/ui_act.c:769:1: style: Parameter 'selSong' can be declared as pointer to const. However it seems that 'BarUiActManageStation' is a callback function, if 'selSong' is declared with const you might also need to cast function pointer(s). [constParameterCallback] pianobar-2022.04.01/src/ui_dispatch.h:93:25: note: You might need to cast the function pointer here pianobar-2022.04.01/src/ui_act.c:769:1: note: Parameter 'selSong' can be declared as pointer to const head pianobar-2022.04.01/src/ui_act.c:780:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PIANO_REQUEST_GET_STATION_INFO [valueFlowBailoutIncompleteVar] DONE