A short list of bug description: -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 01. src/commands.c:2409: (performance) Variable 'curname' is reassigned a value before the old one has been used
Description: This will crash tvtime if we use command "tvtime-command set_input_width 720" This bug will be fixed if line 2404: const char *curname = menu_get_name( cmd->curusermenu ); will be removed. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 02. src/leetft.c:81: (error) Memory leak: cur 03. src/tvtime.c:1435: (error) Memory leak: colourbars 04. src/tvtime.c:1435: (error) Memory leak: saveframe 05. src/tvtime.c:1435: (error) Memory leak: fadeframe 06. src/tvtime.c:1435: (error) Memory leak: blueframe 07. src/tvtime.c:1485: (error) Memory leak: fadeframe 08. src/tvtime.c:1304: (error) Memory leak: tvtime Description: alocated memory isn't freed before function return value. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 09. intl/localealias.c:306 (error) Resource leak: fp 10. src/tvtimeconf.c:986: (error) Resource leak: fifofd 11. src/tvtimeconf.c:1185: (error) Resource leak: fifofd Description: open file isn't closed before function return value -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 12. src/utils.c:130: (error) Resource leak: temp_dir Description: open directory isn't closed before funtion return vale. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 13. plugins/kdetv_greedyh.c:92: (error) Buffer is accessed out of bounds: Picture 14. plugins/kdetv_tomsmocomp.c:91: (error) Buffer Description: have #define MAX_PICTURE_HISTORY 10 and then TPicture Picture[ 8 ; for( i = 0; i < MAX_PICTURE_HISTORY; i++ ) { Info.PictureHistory[ i = &(Picture[ i ); } That's two more elements accessed than provided. The code would be cleaner and guarded from errors like that if we used: TPicture Picture[ MAX_PICTURE_HISTORY ; instead of the hardcoded 8. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 15. src/station.c:1034: (warning) Dangerous usage of strncat - 3rd parameter is the maximum number of characters to append 16. src/station.c:1034: (error) Dangerous usage of 'filename' (strncpy doesn't always null-terminate it). My sugestion is to use memmove insted strncpy: - strncpy( filename, getenv( "HOME" ), 235 ); - strncat( filename, "/.tvtime/stationlist.xml", 255 ); + static const char config_filename[ = "/.tvtime/stationlist.xml"; + const char *home = getenv( "HOME" ); + size_t len = strlen( home ); + if ( len > sizeof( filename ) - sizeof( config_filename ) ) + fprintf( stderr, "station: station: Could not create new config file. The file name will be to long\n" ); + else { + memmove( filename, home, len ); + memmove( filename + len, config_filename, sizeof( config_filename ) ); + } -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 17. src/tvtime.c:242: (warning) Assignment of function parameter has no effect outside the function. 18. src/tvtime.c:629: (warning) Assignment of function -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 19. src/tvtime.c:2549: (warning) The buffer 'prevloc' may not be null-terminated after the call to strncpy(). 20. src/tvtimeconf.c:393: (warning) The buffer 'prevloc' -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 21. intl/l10nflist.c:433 -> 23. intl/l10nflist.c:417: (error, inconclusive) Possible null pointer dereference: retval - otherwise it is redundant to check it against null. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 22. intl/localcharset.c:181: (error) Common realloc mistake: 'res_ptr' nulled but not freed upon failure -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 23. plugins/greedyh.cpp:29: (warning) Member variable 'DScalerFilterGreedyH::GreedyMaxComb' is not initialized in the constructor. 24. plugins/greedyh.cpp:29: (warning) Member variable 'DScalerFilterGreedyH::GreedyMotionThreshold' 25. plugins/greedyh.cpp:29: (warning) Member variable 'DScalerFilterGreedyH::GreedyMotionSense' 26. plugins/tomsmocomp.cpp:29: (warning) Member variable 'DScalerFilterTomsMoComp::SearchEffort' 27. plugins/tomsmocomp.cpp:29: (warning) Member variable 'DScalerFilterTomsMoComp::UseStrangeBob' 28. plugins/tomsmocomp.cpp:29: (warning) Member variable 'DScalerFilterTomsMoComp::pMyMemcpy' 29. plugins/tomsmocomp.cpp:29: (warning) Member variable 'DScalerFilterTomsMoComp::IsOdd' 30. plugins/tomsmocomp.cpp:29: (warning) Member variable 'DScalerFilterTomsMoComp::pWeaveSrc' 31. plugins/tomsmocomp.cpp:29: (warning) Member variable 'DScalerFilterTomsMoComp::pWeaveSrcP' 32. plugins/tomsmocomp.cpp:29: (warning) Member variable 'DScalerFilterTomsMoComp::pWeaveDest' 33. plugins/tomsmocomp.cpp:29: (warning) Member variable 'DScalerFilterTomsMoComp::pCopySrc' 34. plugins/tomsmocomp.cpp:29: (warning) Member variable 'DScalerFilterTomsMoComp::pCopySrcP' 35. plugins/tomsmocomp.cpp:29: (warning) Member variable 'DScalerFilterTomsMoComp::pCopyDest' 36. plugins/tomsmocomp.cpp:29: (warning) Member variable 'DScalerFilterTomsMoComp::src_pitch' 37. plugins/tomsmocomp.cpp:29: (warning) Member variable 'DScalerFilterTomsMoComp::dst_pitch' 38. plugins/tomsmocomp.cpp:29: (warning) Member variable 'DScalerFilterTomsMoComp::rowsize' 39. plugins/tomsmocomp.cpp:29: (warning) Member variable 'DScalerFilterTomsMoComp::height' 40. plugins/tomsmocomp.cpp:29: (warning) Member variable 'DScalerFilterTomsMoComp::FldHeight' -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 41. src/commands.c:1944: (style) Statements following return, break, continue, goto or throw will never be executed. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 42. src/cpuinfo.c:58: (style) Obsolete function 'usleep' called. It is recommended to use the 'nanosleep' or 'setitimer' function instead. 43. src/tvtime.c:2130: (style) Obsolete function 'usleep' called. 44. src/tvtime.c:2378: (style) Obsolete function 'usleep' called. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 45. src/xcommon.c:1595: (warning) When using 'char' variables in bit operations, sign extension can generate unexpected results. Regards, George