2026-05-02 10:07 ftp://ftp.de.debian.org/debian/pool/main/g/gst123/gst123_0.4.1.orig.tar.bz2 cppcheck-options: --library=posix --library=gnu --library=bsd --library=gtk --library=motif --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-1047-aws-aarch64-with-glibc2.35 python: 3.10.12 client-version: 1.4.0 compiler: g++ (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0 cppcheck: head 2.20.0 head-info: e5c4a73 (2026-05-01 11:10:43 +0200) count: 174 169 elapsed-time: 0.8 0.7 head-timing-info: old-timing-info: head results: gst123-0.4.1/src/compat.cc:24:2: error: failed to evaluate #if condition, undefined function-like macro invocation: GST_CHECK_VERSION( ... ) [syntaxError] gst123-0.4.1/src/microconf.h:40:3: style: Class 'MicroConf' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] gst123-0.4.1/src/configfile.h:31:15: performance: Function 'audio_output()' should return member 'm_audio_output' by const reference. [returnByReference] gst123-0.4.1/src/configfile.h:32:15: performance: Function 'visualization()' should return member 'm_visualization' by const reference. [returnByReference] gst123-0.4.1/src/iostream.h:88:3: style: Class 'FileStream' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] gst123-0.4.1/src/iostream.h:147:3: style: Class 'ConsoleStream' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] gst123-0.4.1/src/iostream.h:89:4: style: The destructor '~FileStream' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] gst123-0.4.1/src/iostream.h:61:12: note: Virtual destructor in base class gst123-0.4.1/src/iostream.h:89:4: note: Destructor in derived class gst123-0.4.1/src/iostream.h:91:15: style: The function 'str_error' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] gst123-0.4.1/src/iostream.h:69:23: note: Virtual function in base class gst123-0.4.1/src/iostream.h:91:15: note: Function in derived class gst123-0.4.1/src/iostream.h:94:8: style: The function 'open_stream' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] gst123-0.4.1/src/iostream.h:75:16: note: Virtual function in base class gst123-0.4.1/src/iostream.h:94:8: note: Function in derived class gst123-0.4.1/src/iostream.h:105:4: style: The destructor '~NetworkStream' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride] gst123-0.4.1/src/iostream.h:61:12: note: Virtual destructor in base class gst123-0.4.1/src/iostream.h:105:4: note: Destructor in derived class gst123-0.4.1/src/iostream.h:107:15: style: The function 'str_error' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] gst123-0.4.1/src/iostream.h:69:23: note: Virtual function in base class gst123-0.4.1/src/iostream.h:107:15: note: Function in derived class gst123-0.4.1/src/iostream.h:114:8: style: The function 'open_stream' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] gst123-0.4.1/src/iostream.h:75:16: note: Virtual function in base class gst123-0.4.1/src/iostream.h:114:8: note: Function in derived class gst123-0.4.1/src/iostream.h:127:15: style: The function 'get_content_type' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] gst123-0.4.1/src/iostream.h:65:23: note: Virtual function in base class gst123-0.4.1/src/iostream.h:127:15: note: Function in derived class gst123-0.4.1/src/iostream.h:131:15: style: The function 'str_error' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] gst123-0.4.1/src/iostream.h:107:15: note: Virtual function in base class gst123-0.4.1/src/iostream.h:131:15: note: Function in derived class gst123-0.4.1/src/iostream.h:150:8: style: The function 'open_stream' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] gst123-0.4.1/src/iostream.h:75:16: note: Virtual function in base class gst123-0.4.1/src/iostream.h:150:8: note: Function in derived class gst123-0.4.1/src/filestream.cc:51:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDONLY [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/glib-extra.c:86:30: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable G_PRIORITY_DEFAULT [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/glib-extra.c:84:22: style:inconclusive: Function 'g_usignal_add' argument 3 names different: declaration '' definition 'data'. [funcArgNamesDifferentUnnamed] gst123-0.4.1/src/glib-extra.c:93:22: style:inconclusive: Function 'g_usignal_add_full' argument 4 names different: declaration '' definition 'data'. [funcArgNamesDifferentUnnamed] gst123-0.4.1/src/glib-extra.c:94:22: style:inconclusive: Function 'g_usignal_add_full' argument 5 names different: declaration '' definition 'destroy'. [funcArgNamesDifferentUnnamed] gst123-0.4.1/src/glib-extra.c:53:16: style: Parameter 'timeout' can be declared as pointer to const. However it seems that 'g_usignal_prepare' is a callback function, if 'timeout' is declared with const you might also need to cast function pointer(s). [constParameterCallback] gst123-0.4.1/src/glib-extra.c:33:3: note: You might need to cast the function pointer here gst123-0.4.1/src/glib-extra.c:53:16: note: Parameter 'timeout' can be declared as pointer to const gst123-0.4.1/src/glib-extra.c:55:19: style: Variable 'usignal_source' can be declared as pointer to const [constVariablePointer] gst123-0.4.1/src/glib-extra.c:63:19: style: Variable 'usignal_source' can be declared as pointer to const [constVariablePointer] gst123-0.4.1/src/gst123.cc:202:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable G_DIR_SEPARATOR [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/gst123.cc:216:47: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable G_DIR_SEPARATOR [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/gst123.cc:382:49: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GST_STATE_NULL [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/gst123.cc:453:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GST_CLOCK_TIME_NONE [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/gst123.cc:469:46: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GST_FORMAT_TIME [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/gst123.cc:487:23: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GST_STATE_PAUSED [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/gst123.cc:551:37: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GST_STATE_NULL [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/gst123.cc:575:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GST_TAG_TITLE [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/gst123.cc:654:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GstElement [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/gst123.cc:663:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GstElement [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/gst123.cc:697:10: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GST_BUS_PASS [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/gst123.cc:736:76: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GST_STATE_PLAYING [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/gst123.cc:856:55: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GST_FORMAT_TIME [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/gst123.cc:1116:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/gst123.cc:1190:28: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] gst123-0.4.1/src/gst123.cc:1191:28: portability: Non reentrant function 'strtok' called. For threadsafe applications it is recommended to use the reentrant replacement function 'strtok_r'. [prohibitedstrtokCalled] gst123-0.4.1/src/terminal.h:29:1: style: The class 'Terminal' does not declare a constructor although it has private member variables which likely require initialization. [noConstructor] gst123-0.4.1/src/m3uparser.h:28:1: style: The struct 'M3UParser' does not declare a constructor although it has private member variables which likely require initialization. [noConstructor] gst123-0.4.1/src/gst123.cc:225:3: style: The member function 'Player::make_n_char_string' can be static. [functionStatic] gst123-0.4.1/src/gst123.cc:282:3: style:inconclusive: Technically the member function 'Player::overwrite_time_display' can be const. [functionConst] gst123-0.4.1/src/gst123.cc:299:3: style: The member function 'Player::is_image_file' can be static. [functionStatic] gst123-0.4.1/src/gst123.cc:317:3: style: The member function 'Player::url_decode' can be static. [functionStatic] gst123-0.4.1/src/gst123.cc:412:3: style: The member function 'Player::guess_subtitle' can be static. [functionStatic] gst123-0.4.1/src/gst123.cc:509:3: style: The member function 'Player::set_alpha' can be static. [functionStatic] gst123-0.4.1/src/gst123.cc:523:3: style: The member function 'Player::toggle_fullscreen' can be static. [functionStatic] gst123-0.4.1/src/gst123.cc:539:3: style: The member function 'Player::normal_size' can be static. [functionStatic] gst123-0.4.1/src/uri.h:53:3: style: Class 'URI' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] gst123-0.4.1/src/playlist.h:59:3: style: Class 'Playlist' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] gst123-0.4.1/src/typefinder.h:48:3: style: Class 'TypeFinder' has a constructor with 1 argument that is not explicit. [noExplicitConstructor] gst123-0.4.1/src/plsparser.h:35:8: style: The function 'identify' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] gst123-0.4.1/src/playlist.h:41:16: note: Virtual function in base class gst123-0.4.1/src/plsparser.h:35:8: note: Function in derived class gst123-0.4.1/src/plsparser.h:36:15: style: The function 'str_error' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] gst123-0.4.1/src/playlist.h:42:23: note: Virtual function in base class gst123-0.4.1/src/plsparser.h:36:15: note: Function in derived class gst123-0.4.1/src/m3uparser.h:31:8: style: The function 'identify' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] gst123-0.4.1/src/playlist.h:41:16: note: Virtual function in base class gst123-0.4.1/src/m3uparser.h:31:8: note: Function in derived class gst123-0.4.1/src/m3uparser.h:32:15: style: The function 'str_error' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] gst123-0.4.1/src/playlist.h:42:23: note: Virtual function in base class gst123-0.4.1/src/m3uparser.h:32:15: note: Function in derived class gst123-0.4.1/src/gst123.cc:556:8: style: The function 'process_input' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] gst123-0.4.1/src/keyhandler.h:36:16: note: Virtual function in base class gst123-0.4.1/src/gst123.cc:556:8: note: Function in derived class gst123-0.4.1/src/typefinder.h:52:3: performance: Function 'type()' should return member 'm_type' by const reference. [returnByReference] gst123-0.4.1/src/typefinder.h:57:3: performance: Function 'subtype()' should return member 'm_subtype' by const reference. [returnByReference] gst123-0.4.1/src/gst123.cc:348:27: warning: Opposite inner 'if' condition leads to a dead code block. [oppositeInnerCondition] gst123-0.4.1/src/gst123.cc:346:27: note: outer condition: play_position==uris.size() gst123-0.4.1/src/gst123.cc:348:27: note: opposite inner condition: uris.empty() gst123-0.4.1/src/gst123.cc:1149:11: error: Memory leak: player.loop [memleak] gst123-0.4.1/src/gst123.cc:82:39: warning: If resource allocation fails, then there is a possible null pointer dereference: cols [nullPointerOutOfResources] gst123-0.4.1/src/gst123.cc:80:22: note: Assuming allocation function fails gst123-0.4.1/src/gst123.cc:80:22: note: Assignment 'cols=popen("tput cols","r")', assigned value is 0 gst123-0.4.1/src/gst123.cc:82:39: note: Null pointer dereference gst123-0.4.1/src/gst123.cc:573:17: style: C-style pointer casting [cstyleCast] gst123-0.4.1/src/gst123.cc:618:30: style: C-style pointer casting [cstyleCast] gst123-0.4.1/src/gst123.cc:654:35: style: C-style pointer casting [cstyleCast] gst123-0.4.1/src/gst123.cc:703:21: style: C-style pointer casting [cstyleCast] gst123-0.4.1/src/gst123.cc:796:40: style: C-style pointer casting [cstyleCast] gst123-0.4.1/src/gst123.cc:836:21: style: C-style pointer casting [cstyleCast] gst123-0.4.1/src/gst123.cc:851:21: style: C-style pointer casting [cstyleCast] gst123-0.4.1/src/gst123.cc:913:21: style: C-style pointer casting [cstyleCast] gst123-0.4.1/src/gst123.cc:107:57: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:108:19: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:221:19: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:383:31: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:388:37: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:390:37: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:499:19: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:505:21: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:518:19: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:519:19: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:532:19: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:533:19: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:763:21: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:782:32: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:888:21: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:1178:21: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:1214:27: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:1215:25: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:1220:21: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/gst123.cc:864:13: style: The scope of the variable 'len_min' can be reduced. [variableScope] gst123-0.4.1/src/gst123.cc:1098:22: style: Local variable 'uris' shadows outer variable [shadowVariable] gst123-0.4.1/src/gst123.cc:159:18: note: Shadowed declaration gst123-0.4.1/src/gst123.cc:1098:22: note: Shadow variable gst123-0.4.1/src/gst123.cc:412:26: performance: Function parameter 'uri' should be passed by const reference. [passedByValue] gst123-0.4.1/src/gst123.cc:82:9: style: Variable 'line' can be declared as pointer to const [constVariablePointer] gst123-0.4.1/src/gst123.cc:1177:19: style: Variable 'fakesink' can be declared as pointer to const [constVariablePointer] gst123-0.4.1/src/gst123.cc:1190:13: style: Variable 'audio_driver' can be declared as pointer to const [constVariablePointer] gst123-0.4.1/src/gst123.cc:1191:13: style: Variable 'audio_device' can be declared as pointer to const [constVariablePointer] gst123-0.4.1/src/gst123.cc:234:58: performance: Prefer prefix ++/-- operators for non-primitive types. [postfixOperator] gst123-0.4.1/src/gst123.cc:663:86: performance: Prefer prefix ++/-- operators for non-primitive types. [postfixOperator] gst123-0.4.1/src/gst123.cc:748:63: performance: Prefer prefix ++/-- operators for non-primitive types. [postfixOperator] gst123-0.4.1/src/gst123.cc:1099:80: performance: Prefer prefix ++/-- operators for non-primitive types. [postfixOperator] gst123-0.4.1/src/gst123.cc:1142:94: performance: Prefer prefix ++/-- operators for non-primitive types. [postfixOperator] gst123-0.4.1/src/gtkinterface.cc:473:59: error: There is an unknown macro here somewhere. Configuration is required. If G_GUINT64_FORMAT is a macro then please configure it. [unknownMacro] gst123-0.4.1/src/httpstream.cc:79:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/httpstream.cc:100:5: warning: sscanf() without field width limits can crash with huge input data. [invalidscanf] gst123-0.4.1/src/httpstream.cc:90:8: style: The scope of the variable 'mode' can be reduced. [variableScope] gst123-0.4.1/src/httpstream.cc:91:8: style: The scope of the variable 'message' can be reduced. [variableScope] gst123-0.4.1/src/iostream.cc:68:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable npos [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/iostream.cc:131:11: style:inconclusive: Technically the member function 'Gst123::IOStream::get_status' can be const. [functionConst] gst123-0.4.1/src/iostream.h:68:7: note: Technically the member function 'Gst123::IOStream::get_status' can be const. gst123-0.4.1/src/iostream.cc:131:11: note: Technically the member function 'Gst123::IOStream::get_status' can be const. gst123-0.4.1/src/iostream.cc:151:11: style:inconclusive: Technically the member function 'Gst123::IOStream::read_str_error' can be const. [functionConst] gst123-0.4.1/src/iostream.h:70:15: note: Technically the member function 'Gst123::IOStream::read_str_error' can be const. gst123-0.4.1/src/iostream.cc:151:11: note: Technically the member function 'Gst123::IOStream::read_str_error' can be const. gst123-0.4.1/src/iostream.cc:96:7: style: Redundant initialization for 'pos'. The initialized value is overwritten before it is read. [redundantInitialization] gst123-0.4.1/src/iostream.cc:68:14: note: pos is initialized gst123-0.4.1/src/iostream.cc:96:7: note: pos is overwritten gst123-0.4.1/src/iostream.cc:66:8: style: The scope of the variable 'buf' can be reduced. [variableScope] gst123-0.4.1/src/iostream.cc:67:7: style: The scope of the variable 'len' can be reduced. [variableScope] gst123-0.4.1/src/iostream.cc:64:35: style:inconclusive: Function 'readline' argument 1 names different: declaration 'separator' definition 'newline'. [funcArgNamesDifferent] gst123-0.4.1/src/iostream.h:63:36: note: Function 'readline' argument 1 names different: declaration 'separator' definition 'newline'. gst123-0.4.1/src/iostream.cc:64:35: note: Function 'readline' argument 1 names different: declaration 'separator' definition 'newline'. gst123-0.4.1/src/iostream.cc:116:46: style:inconclusive: Function 'content_begins_with' argument 1 names different: declaration 'magic' definition 'match'. [funcArgNamesDifferent] gst123-0.4.1/src/iostream.h:64:48: note: Function 'content_begins_with' argument 1 names different: declaration 'magic' definition 'match'. gst123-0.4.1/src/iostream.cc:116:46: note: Function 'content_begins_with' argument 1 names different: declaration 'magic' definition 'match'. gst123-0.4.1/src/iostream.cc:67:11: style: Variable 'len' is assigned a value that is never used. [unreadVariable] gst123-0.4.1/src/m3uparser.cc:77:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/plsparser.h:34:7: style: The function 'parse' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] gst123-0.4.1/src/playlist.h:40:15: note: Virtual function in base class gst123-0.4.1/src/plsparser.h:34:7: note: Function in derived class gst123-0.4.1/src/m3uparser.h:30:7: style: The function 'parse' overrides a function in a base class but is not marked with a 'override' specifier. [missingOverride] gst123-0.4.1/src/playlist.h:40:15: note: Virtual function in base class gst123-0.4.1/src/m3uparser.h:30:7: note: Function in derived class gst123-0.4.1/src/microconf.cc:195:16: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/microconf.cc:26:12: warning: Member variable 'MicroConf::tokenizer_error' is not initialized in the constructor. [uninitMemberVar] gst123-0.4.1/src/microconf.cc:170:12: style: The member function 'MicroConf::convert' can be static. [functionStatic] gst123-0.4.1/src/microconf.h:34:8: note: The member function 'MicroConf::convert' can be static. gst123-0.4.1/src/microconf.cc:170:12: note: The member function 'MicroConf::convert' can be static. gst123-0.4.1/src/microconf.cc:177:12: style: The member function 'MicroConf::convert' can be static. [functionStatic] gst123-0.4.1/src/microconf.h:35:8: note: The member function 'MicroConf::convert' can be static. gst123-0.4.1/src/microconf.cc:177:12: note: The member function 'MicroConf::convert' can be static. gst123-0.4.1/src/microconf.cc:184:12: style: The member function 'MicroConf::convert' can be static. [functionStatic] gst123-0.4.1/src/microconf.h:36:8: note: The member function 'MicroConf::convert' can be static. gst123-0.4.1/src/microconf.cc:184:12: note: The member function 'MicroConf::convert' can be static. gst123-0.4.1/src/microconf.cc:44:12: style:inconclusive: Technically the member function 'MicroConf::open_ok' can be const. [functionConst] gst123-0.4.1/src/microconf.h:43:8: note: Technically the member function 'MicroConf::open_ok' can be const. gst123-0.4.1/src/microconf.cc:44:12: note: Technically the member function 'MicroConf::open_ok' can be const. gst123-0.4.1/src/microconf.cc:78:12: style:inconclusive: Technically the member function 'MicroConf::line' can be const. [functionConst] gst123-0.4.1/src/microconf.h:45:15: note: Technically the member function 'MicroConf::line' can be const. gst123-0.4.1/src/microconf.cc:78:12: note: Technically the member function 'MicroConf::line' can be const. gst123-0.4.1/src/microconf.cc:28:3: warning: Class 'MicroConf' does not have a copy constructor which is recommended since it has dynamic memory/resource management. [noCopyConstructor] gst123-0.4.1/src/microconf.cc:28:3: warning: Class 'MicroConf' does not have a operator= which is recommended since it has dynamic memory/resource management. [noOperatorEq] gst123-0.4.1/src/microconf.h:45:15: performance: Function 'line()' should return member 'current_line' by const reference. [returnByReference] gst123-0.4.1/src/microconf.cc:114:68: performance: Prefer prefix ++/-- operators for non-primitive types. [postfixOperator] gst123-0.4.1/src/msg.cc:52:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/networkstream.cc:61:21: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_UNSPEC [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/options.cc:77:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable G_OPTION_ARG_NONE [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/options.cc:134:54: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable VERSION [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/options.cc:141:65: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable VERSION [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/options.cc:36:10: warning: Member variable 'Options::subtitle' is not initialized in the constructor. [uninitMemberVar] gst123-0.4.1/src/options.cc:57:5: warning: Class 'Options' does not have a copy constructor which is recommended since it has dynamic memory/resource management. [noCopyConstructor] gst123-0.4.1/src/options.cc:57:5: warning: Class 'Options' does not have a operator= which is recommended since it has dynamic memory/resource management. [noOperatorEq] gst123-0.4.1/src/options.cc:57:5: warning: Class 'Options' does not have a destructor which is recommended since it has dynamic memory/resource management. [noDestructor] gst123-0.4.1/src/options.cc:132:80: style: Parameter 'data' can be declared as pointer to const. However it seems that 'print_version' is a callback function, if 'data' is declared with const you might also need to cast function pointer(s). [constParameterCallback] gst123-0.4.1/src/options.cc:74:55: note: You might need to cast the function pointer here gst123-0.4.1/src/options.cc:132:80: note: Parameter 'data' can be declared as pointer to const gst123-0.4.1/src/options.cc:139:85: style: Parameter 'data' can be declared as pointer to const. However it seems that 'print_full_version' is a callback function, if 'data' is declared with const you might also need to cast function pointer(s). [constParameterCallback] gst123-0.4.1/src/options.cc:76:55: note: You might need to cast the function pointer here gst123-0.4.1/src/options.cc:139:85: note: Parameter 'data' can be declared as pointer to const gst123-0.4.1/src/playlist.cc:76:11: style:inconclusive: Either there is a missing 'override', or the member function 'Gst123::Playlist::is_valid' can be const. [functionConst] gst123-0.4.1/src/playlist.h:60:8: note: Either there is a missing 'override', or the member function 'Gst123::Playlist::is_valid' can be const. gst123-0.4.1/src/playlist.cc:76:11: note: Either there is a missing 'override', or the member function 'Gst123::Playlist::is_valid' can be const. gst123-0.4.1/src/playlist.cc:92:9: style: Consider using std::find_if algorithm instead of a raw loop. [useStlAlgorithm] gst123-0.4.1/src/playlist.cc:36:10: style: Unused variable: errorstr [unusedVariable] gst123-0.4.1/src/plsparser.cc:69:48: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable npos [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/plsparser.cc:69:11: style: Local variable 'ret' shadows outer variable [shadowVariable] gst123-0.4.1/src/plsparser.cc:54:7: note: Shadowed declaration gst123-0.4.1/src/plsparser.cc:69:11: note: Shadow variable gst123-0.4.1/src/terminal.cc:58:31: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable G_IO_IN [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/terminal.cc:106:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable ICANON [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/terminal.cc:152:58: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GSource [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/terminal.cc:162:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable TCSANOW [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/terminal.cc:91:11: style: The member function 'Terminal::print_term' can be static. [functionStatic] gst123-0.4.1/src/terminal.h:45:8: note: The member function 'Terminal::print_term' can be static. gst123-0.4.1/src/terminal.cc:91:11: note: The member function 'Terminal::print_term' can be static. gst123-0.4.1/src/terminal.cc:157:1: error: Memory leak: source [memleak] gst123-0.4.1/src/terminal.cc:93:9: style: Variable 'ret' can be declared as pointer to const [constVariablePointer] gst123-0.4.1/src/terminal.cc:188:76: performance: Prefer prefix ++/-- operators for non-primitive types. [postfixOperator] gst123-0.4.1/src/typefinder.cc:50:28: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable npos [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/typefinder.cc:94:50: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GST_STATE_PLAYING [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/typefinder.cc:69:22: style: C-style pointer casting [cstyleCast] gst123-0.4.1/src/typefinder.cc:84:17: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/typefinder.cc:71:10: style: Local variable 'type' shadows outer function [shadowFunction] gst123-0.4.1/src/typefinder.h:52:3: note: Shadowed declaration gst123-0.4.1/src/typefinder.cc:71:10: note: Shadow variable gst123-0.4.1/src/uri.cc:49:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable npos [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/uri.cc:136:33: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdin [valueFlowBailoutIncompleteVar] gst123-0.4.1/src/uri.cc:149:6: style:inconclusive: Technically the member function 'Gst123::URI::empty_path_allowed' can be const. [functionConst] gst123-0.4.1/src/uri.h:50:8: note: Technically the member function 'Gst123::URI::empty_path_allowed' can be const. gst123-0.4.1/src/uri.cc:149:6: note: Technically the member function 'Gst123::URI::empty_path_allowed' can be const. gst123-0.4.1/src/uri.cc:106:12: warning: Class 'URI' does not have a copy constructor which is recommended since it has dynamic memory/resource management. [noCopyConstructor] gst123-0.4.1/src/uri.cc:106:12: warning: Class 'URI' does not have a operator= which is recommended since it has dynamic memory/resource management. [noOperatorEq] gst123-0.4.1/src/uri.cc:62:14: style: Redundant initialization for 'start'. The initialized value is overwritten before it is read. [redundantInitialization] gst123-0.4.1/src/uri.cc:49:16: note: start is initialized gst123-0.4.1/src/uri.cc:62:14: note: start is overwritten gst123-0.4.1/src/uri.cc:71:13: style: Redundant initialization for 'walk'. The initialized value is overwritten before it is read. [redundantInitialization] gst123-0.4.1/src/uri.cc:50:15: note: walk is initialized gst123-0.4.1/src/uri.cc:71:13: note: walk is overwritten gst123-0.4.1/src/uri.cc:81:11: style: Redundant initialization for 'portsep'. The initialized value is overwritten before it is read. [redundantInitialization] gst123-0.4.1/src/uri.cc:51:18: note: portsep is initialized gst123-0.4.1/src/uri.cc:81:11: note: portsep is overwritten gst123-0.4.1/src/visualization.cc:59:9: style: C-style pointer casting [cstyleCast] gst123-0.4.1/src/visualization.cc:60:9: style: C-style pointer casting [cstyleCast] gst123-0.4.1/src/visualization.cc:61:11: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/visualization.cc:74:17: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/visualization.cc:77:17: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/visualization.cc:78:17: warning: Potentially invalid type conversion in old-style C cast, clarify/fix with C++ cast [dangerousTypeCast] gst123-0.4.1/src/visualization.cc:67:20: style:inconclusive: Function 'setup' argument 1 names different: declaration 'element' definition 'playbin'. [funcArgNamesDifferent] gst123-0.4.1/src/visualization.h:28:25: note: Function 'setup' argument 1 names different: declaration 'element' definition 'playbin'. gst123-0.4.1/src/visualization.cc:67:20: note: Function 'setup' argument 1 names different: declaration 'element' definition 'playbin'. gst123-0.4.1/src/visualization.cc:69:15: style: Variable 'vis_plugin' can be declared as pointer to const [constVariablePointer] diff: head gst123-0.4.1/src/glib-extra.c:84:22: style:inconclusive: Function 'g_usignal_add' argument 3 names different: declaration '' definition 'data'. [funcArgNamesDifferentUnnamed] head gst123-0.4.1/src/glib-extra.c:93:22: style:inconclusive: Function 'g_usignal_add_full' argument 4 names different: declaration '' definition 'data'. [funcArgNamesDifferentUnnamed] head gst123-0.4.1/src/glib-extra.c:94:22: style:inconclusive: Function 'g_usignal_add_full' argument 5 names different: declaration '' definition 'destroy'. [funcArgNamesDifferentUnnamed] head gst123-0.4.1/src/gst123.cc:348:27: warning: Opposite inner 'if' condition leads to a dead code block. [oppositeInnerCondition] gst123-0.4.1/src/gst123.cc:346:27: note: outer condition: play_position==uris.size() gst123-0.4.1/src/gst123.cc:348:27: note: opposite inner condition: uris.empty() head gst123-0.4.1/src/gst123.cc:654:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GstElement [valueFlowBailoutIncompleteVar] head gst123-0.4.1/src/gst123.cc:663:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable GstElement [valueFlowBailoutIncompleteVar] head gst123-0.4.1/src/gst123.cc:864:13: style: The scope of the variable 'len_min' can be reduced. [variableScope] 2.20.0 gst123-0.4.1/src/gst123.cc:89:11: warning: If resource allocation fails, then there is a possible null pointer dereference: cols [nullPointerOutOfResources] gst123-0.4.1/src/gst123.cc:80:22: note: Assuming allocation function fails gst123-0.4.1/src/gst123.cc:80:22: note: Assignment 'cols=popen("tput cols","r")', assigned value is 0 gst123-0.4.1/src/gst123.cc:89:11: note: Null pointer dereference 2.20.0 gst123-0.4.1/src/playlist.cc:45:0: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable cerr [valueFlowBailoutIncompleteVar] DONE