2026-05-01 14:27 ftp://ftp.de.debian.org/debian/pool/main/c/cyanrip/cyanrip_0.9.3.1.orig.tar.xz cppcheck-options: --library=posix --library=gnu --library=bsd --library=libcurl --inconclusive --enable=style,information --inline-suppr --template=daca2 --disable=missingInclude --suppress=unmatchedSuppression --check-library --debug-warnings --suppress=autoNoType --suppress=valueFlowBailout --suppress=bailoutUninitVar --suppress=symbolDatabaseWarning --suppress=normalCheckLevelConditionExpressions -D__GNUC__ --platform=unix64 -j1 platform: Linux-6.8.0-111-generic-x86_64-with-glibc2.39 python: 3.12.3 client-version: 1.3.70 compiler: g++ (Ubuntu 14.2.0-4ubuntu2~24.04.1) 14.2.0 cppcheck: head 2.20.0 head-info: e5c4a73 (2026-05-01 11:10:43 +0200) count: 86 86 elapsed-time: 2.2 1.9 head-timing-info: old-timing-info: head results: cyanrip-0.9.3.1/src/bytestream.h:157:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/accurip.c:82:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CURL_ERROR_SIZE [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/utils.h:58:5: warning: %i in format string (no. 1) requires 'int' but the argument type is 'unsigned int'. [invalidPrintfArgType_sint] cyanrip-0.9.3.1/src/utils.h:58:5: warning: %i in format string (no. 2) requires 'int' but the argument type is 'unsigned int'. [invalidPrintfArgType_sint] cyanrip-0.9.3.1/src/utils.h:58:5: warning: %i in format string (no. 3) requires 'int' but the argument type is 'unsigned int'. [invalidPrintfArgType_sint] cyanrip-0.9.3.1/src/accurip.c:63:34: style: Parameter 'buffer' can be declared as pointer to const. However it seems that 'receive_data' is a callback function, if 'buffer' is declared with const you might also need to cast function pointer(s). [constParameterCallback] cyanrip-0.9.3.1/src/accurip.c:119:55: note: You might need to cast the function pointer here cyanrip-0.9.3.1/src/accurip.c:63:34: note: Parameter 'buffer' can be declared as pointer to const cyanrip-0.9.3.1/src/accurip.c:158:15: style: Variable 'html_loc' can be declared as pointer to const [constVariablePointer] cyanrip-0.9.3.1/src/accurip.c:238:26: style: Variable 'e' can be declared as pointer to const [constVariablePointer] cyanrip-0.9.3.1/src/bytestream.h:111:72: style: Parameter 'g' can be declared as pointer to const [constParameterPointer] cyanrip-0.9.3.1/src/bytestream.h:128:62: style: Parameter 'g' can be declared as pointer to const [constParameterPointer] cyanrip-0.9.3.1/src/bytestream.h:133:62: style: Parameter 'g' can be declared as pointer to const [constParameterPointer] cyanrip-0.9.3.1/src/coverart.c:58:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOMEM [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/coverart.c:147:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CURL_ERROR_SIZE [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/coverart.c:273:39: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AVCodecParameters [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/coverart.c:152:40: warning: Possible null pointer dereference: release_id [nullPointer] cyanrip-0.9.3.1/src/coverart.c:425:67: note: Calling function 'fetch_image', 4th argument 'NULL' value is 0 cyanrip-0.9.3.1/src/coverart.c:152:40: note: Null pointer dereference cyanrip-0.9.3.1/src/coverart.c:91:14: style: Variable 'ret' is reassigned a value before the old one has been used. [redundantAssignment] cyanrip-0.9.3.1/src/coverart.c:89:9: note: ret is assigned cyanrip-0.9.3.1/src/coverart.c:91:14: note: ret is overwritten cyanrip-0.9.3.1/src/coverart.c:126:35: style: Parameter 'buffer' can be declared as pointer to const. However it seems that 'receive_image' is a callback function, if 'buffer' is declared with const you might also need to cast function pointer(s). [constParameterCallback] cyanrip-0.9.3.1/src/coverart.c:162:55: note: You might need to cast the function pointer here cyanrip-0.9.3.1/src/coverart.c:126:35: note: Parameter 'buffer' can be declared as pointer to const cyanrip-0.9.3.1/src/coverart.c:387:15: style: Variable 'source_url' can be declared as pointer to const [constVariablePointer] cyanrip-0.9.3.1/src/coverart.c:420:15: style: Variable 'source_url' can be declared as pointer to const [constVariablePointer] cyanrip-0.9.3.1/src/cue_writer.c:34:53: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cue_writer.c:59:47: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_DICT_IGNORE_SUFFIX [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cue_writer.c:86:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CDIO_INVALID_LSN [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:87:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_CODEC_ID_NONE [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:109:32: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_CODEC_ID_NONE [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:139:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_CHANNEL_LAYOUT_STEREO [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:182:39: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_SAMPLE_FMT_S16 [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:265:36: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable FF_COMPLIANCE_EXPERIMENTAL [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:282:48: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_LOG_INFO [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:311:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOMEM [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:420:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOMEM [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:475:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_BUFFERSRC_FLAG_NO_CHECK_FORMAT [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:558:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOMEM [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:606:47: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_OPT_SEARCH_CHILDREN [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:629:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOMEM [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:654:44: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_BUFFERSRC_FLAG_KEEP_REF [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:692:45: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_CHANNEL_LAYOUT_STEREO [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:719:43: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_NOPTS_VALUE [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:743:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_LOG_ERROR [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:877:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOMEM [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:1042:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOMEM [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_encode.c:999:63: style:inconclusive: Function 'cyanrip_writeout_track' argument 2 names different: declaration 'enc_ctx' definition 's'. [funcArgNamesDifferent] cyanrip-0.9.3.1/src/cyanrip_encode.h:46:63: note: Function 'cyanrip_writeout_track' argument 2 names different: declaration 'enc_ctx' definition 's'. cyanrip-0.9.3.1/src/cyanrip_encode.c:999:63: note: Function 'cyanrip_writeout_track' argument 2 names different: declaration 'enc_ctx' definition 's'. cyanrip-0.9.3.1/src/cyanrip_encode.c:250:75: style: Parameter 'avf' can be declared as pointer to const [constParameterPointer] cyanrip-0.9.3.1/src/cyanrip_encode.c:414:43: style: Parameter 't' can be declared as pointer to const [constParameterPointer] cyanrip-0.9.3.1/src/cyanrip_encode.c:247:12: warning: Uninitialized variable: ret [uninitvar] cyanrip-0.9.3.1/src/cyanrip_encode.c:239:23: note: Assuming condition is false cyanrip-0.9.3.1/src/cyanrip_encode.c:247:12: note: Uninitialized variable: ret cyanrip-0.9.3.1/src/cyanrip_encode.c:527:17: style: Variable 'ret' is assigned a value that is never used. [unreadVariable] cyanrip-0.9.3.1/src/cyanrip_log.c:37:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CDIO_INVALID_LSN [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_log.c:94:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CDIO_CD_FRAMESIZE_RAW [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_log.c:221:46: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PROJECT_VERSION_STRING [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_log.c:340:5: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PARANOIA_CB_READ [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_log.c:376:53: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_log.c:486:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable av_log_default_callback [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_log.c:302:22: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] cyanrip-0.9.3.1/src/cyanrip_log.c:302:16: style: Variable 't_l' can be declared as pointer to const [constVariablePointer] cyanrip-0.9.3.1/src/checksums.h:39:37: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_CRC_32_IEEE_LE [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/checksums.h:74:43: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CDIO_CD_FRAMESIZE_RAW [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_main.c:92:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CDIO_DRIVE_CAP_MISC_EJECT [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_main.c:126:57: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable DRIVER_UNKNOWN [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_main.c:303:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CDIO_DRIVE_CAP_READ_MCN [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_main.c:330:55: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_DICT_DONT_OVERWRITE [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_main.c:340:49: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable PARANOIA_CB_FINISHED [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_main.c:380:30: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CDIO_CD_FRAMESIZE_RAW [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_main.c:413:42: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CDIO_CD_FRAMESIZE_RAW [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_main.c:510:53: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CDIO_DRIVE_CAP_READ_ISRC [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_main.c:583:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CDIO_CD_FRAMESIZE_RAW [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_main.c:852:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CDIO_CD_FRAMESIZE_RAW [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_main.c:916:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable CDIO_INVALID_LSN [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_main.c:1088:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOMEM [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_main.c:1129:64: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_UTF8_FLAG_ACCEPT_ALL [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_main.c:1335:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable EINVAL [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_main.c:1345:29: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_BPRINT_SIZE_AUTOMATIC [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_main.c:1405:22: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_LOG_QUIET [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/cyanrip_main.c:320:22: portability: Non reentrant function 'localtime' called. For threadsafe applications it is recommended to use the reentrant replacement function 'localtime_r'. [prohibitedlocaltimeCalled] cyanrip-0.9.3.1/src/cyanrip_main.c:492:20: style: Condition 'had_ar' is always true [knownConditionTrueFalse] cyanrip-0.9.3.1/src/cyanrip_main.c:1814:9: error: Memory leak: settings.dev_path [memleak] cyanrip-0.9.3.1/src/cyanrip_main.c:1214:22: style: Redundant initialization for 'cond_tok'. The initialized value is overwritten before it is read. [redundantInitialization] cyanrip-0.9.3.1/src/cyanrip_main.c:1212:40: note: cond_tok is initialized cyanrip-0.9.3.1/src/cyanrip_main.c:1214:22: note: cond_tok is overwritten cyanrip-0.9.3.1/src/cyanrip_main.c:320:16: style: Variable 't_l' can be declared as pointer to const [constVariablePointer] cyanrip-0.9.3.1/src/cyanrip_main.c:1169:43: style: Parameter 'ctx' can be declared as pointer to const [constParameterPointer] cyanrip-0.9.3.1/src/checksums.h:83:66: style: Parameter 's' can be declared as pointer to const [constParameterPointer] cyanrip-0.9.3.1/src/discid.c:74:47: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AV_DICT_DONT_STRDUP_VAL [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/discid.c:45:53: error: Array 'ctx->tracks[198]' accessed at index -1, which is out of bounds. [negativeIndex] cyanrip-0.9.3.1/src/discid.c:41:33: note: Assuming that condition 'last_audio_track_idx>=0' is not redundant cyanrip-0.9.3.1/src/discid.c:45:53: note: Negative array index cyanrip-0.9.3.1/src/discid.c:48:29: error: Array 'ctx->tracks[198]' accessed at index -1, which is out of bounds. [negativeIndex] cyanrip-0.9.3.1/src/discid.c:41:33: note: Assuming that condition 'last_audio_track_idx>=0' is not redundant cyanrip-0.9.3.1/src/discid.c:48:29: note: Negative array index cyanrip-0.9.3.1/src/discid.c:55:52: style: Condition 'i<=last_audio_track_idx' is always true [knownConditionTrueFalse] cyanrip-0.9.3.1/src/discid.c:54:15: note: Assuming that condition 'i<=last_audio_track_idx' is not redundant cyanrip-0.9.3.1/src/discid.c:55:52: note: Condition 'i<=last_audio_track_idx' is always true cyanrip-0.9.3.1/src/discid.c:104:57: style: Condition 'i<=last_audio_track_idx' is always true [knownConditionTrueFalse] cyanrip-0.9.3.1/src/discid.c:103:23: note: Assuming that condition 'i<=last_audio_track_idx' is not redundant cyanrip-0.9.3.1/src/discid.c:104:57: note: Condition 'i<=last_audio_track_idx' is always true cyanrip-0.9.3.1/src/fifo_template.c:130:27: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ENOBUFS [valueFlowBailoutIncompleteVar] cyanrip-0.9.3.1/src/fifo_template.c:14:13: error: There is an unknown macro here somewhere. Configuration is required. If PRIV_RENAME is a macro then please configure it. [unknownMacro] cyanrip-0.9.3.1/src/musicbrainz.c:190:33: error: There is an unknown macro here somewhere. Configuration is required. If PROJECT_VERSION_STRING is a macro then please configure it. [unknownMacro] diff: 2.20.0 cyanrip-0.9.3.1/src/cyanrip_main.c:1798:13: error: Memory leak: settings.dev_path [memleak] head cyanrip-0.9.3.1/src/cyanrip_main.c:1814:9: error: Memory leak: settings.dev_path [memleak] DONE