Flawfinder version 2.0.10, (C) 2001-2019 David A. Wheeler. Number of rules (primarily dangerous function names) in C/C++ ruleset: 223 Examining data/sdl-sound1.2-1.0.3/SDL_sound.h Examining data/sdl-sound1.2-1.0.3/SDL_sound.c Examining data/sdl-sound1.2-1.0.3/SDL_sound_internal.h Examining data/sdl-sound1.2-1.0.3/alt_audio_convert.c Examining data/sdl-sound1.2-1.0.3/alt_audio_convert.h Examining data/sdl-sound1.2-1.0.3/audio_convert.c Examining data/sdl-sound1.2-1.0.3/extra_rwops.c Examining data/sdl-sound1.2-1.0.3/extra_rwops.h Examining data/sdl-sound1.2-1.0.3/decoders/aiff.c Examining data/sdl-sound1.2-1.0.3/decoders/au.c Examining data/sdl-sound1.2-1.0.3/decoders/mikmod.c Examining data/sdl-sound1.2-1.0.3/decoders/modplug.c Examining data/sdl-sound1.2-1.0.3/decoders/mpglib.c Examining data/sdl-sound1.2-1.0.3/decoders/smpeg.c Examining data/sdl-sound1.2-1.0.3/decoders/ogg.c Examining data/sdl-sound1.2-1.0.3/decoders/raw.c Examining data/sdl-sound1.2-1.0.3/decoders/shn.c Examining data/sdl-sound1.2-1.0.3/decoders/voc.c Examining data/sdl-sound1.2-1.0.3/decoders/midi.c Examining data/sdl-sound1.2-1.0.3/decoders/flac.c Examining data/sdl-sound1.2-1.0.3/decoders/speex.c Examining data/sdl-sound1.2-1.0.3/decoders/quicktime.c Examining data/sdl-sound1.2-1.0.3/decoders/wav.c Examining data/sdl-sound1.2-1.0.3/decoders/timidity/common.c Examining data/sdl-sound1.2-1.0.3/decoders/timidity/common.h Examining data/sdl-sound1.2-1.0.3/decoders/timidity/dls1.h Examining data/sdl-sound1.2-1.0.3/decoders/timidity/dls2.h Examining data/sdl-sound1.2-1.0.3/decoders/timidity/instrum.c Examining data/sdl-sound1.2-1.0.3/decoders/timidity/instrum.h Examining data/sdl-sound1.2-1.0.3/decoders/timidity/instrum_dls.c Examining data/sdl-sound1.2-1.0.3/decoders/timidity/instrum_dls.h Examining data/sdl-sound1.2-1.0.3/decoders/timidity/mix.c Examining data/sdl-sound1.2-1.0.3/decoders/timidity/mix.h Examining data/sdl-sound1.2-1.0.3/decoders/timidity/options.h Examining data/sdl-sound1.2-1.0.3/decoders/timidity/output.c Examining data/sdl-sound1.2-1.0.3/decoders/timidity/output.h Examining data/sdl-sound1.2-1.0.3/decoders/timidity/playmidi.c Examining data/sdl-sound1.2-1.0.3/decoders/timidity/playmidi.h Examining data/sdl-sound1.2-1.0.3/decoders/timidity/readmidi.c Examining data/sdl-sound1.2-1.0.3/decoders/timidity/readmidi.h Examining data/sdl-sound1.2-1.0.3/decoders/timidity/resample.c Examining data/sdl-sound1.2-1.0.3/decoders/timidity/resample.h Examining data/sdl-sound1.2-1.0.3/decoders/timidity/tables.c Examining data/sdl-sound1.2-1.0.3/decoders/timidity/tables.h Examining data/sdl-sound1.2-1.0.3/decoders/timidity/timidity.h Examining data/sdl-sound1.2-1.0.3/decoders/timidity/testmidi.c Examining data/sdl-sound1.2-1.0.3/decoders/timidity/timidity.c Examining data/sdl-sound1.2-1.0.3/decoders/mpglib/mpglib_common.c Examining data/sdl-sound1.2-1.0.3/decoders/mpglib/huffman.h Examining data/sdl-sound1.2-1.0.3/decoders/mpglib/layer1.c Examining data/sdl-sound1.2-1.0.3/decoders/mpglib/tabinit.c Examining data/sdl-sound1.2-1.0.3/decoders/mpglib/dct64_i386.c Examining data/sdl-sound1.2-1.0.3/decoders/mpglib/interface.c Examining data/sdl-sound1.2-1.0.3/decoders/mpglib/layer2.c Examining data/sdl-sound1.2-1.0.3/decoders/mpglib/mpg123_sdlsound.h Examining data/sdl-sound1.2-1.0.3/decoders/mpglib/decode_i386.c Examining data/sdl-sound1.2-1.0.3/decoders/mpglib/l2tables.h Examining data/sdl-sound1.2-1.0.3/decoders/mpglib/layer3.c Examining data/sdl-sound1.2-1.0.3/decoders/mpglib/mpglib_sdlsound.h Examining data/sdl-sound1.2-1.0.3/decoders/mpglib/main.c Examining data/sdl-sound1.2-1.0.3/playsound/playsound.c Examining data/sdl-sound1.2-1.0.3/playsound/physfsrwops.c Examining data/sdl-sound1.2-1.0.3/playsound/physfsrwops.h Examining data/sdl-sound1.2-1.0.3/playsound/playsound_simple.c FINAL RESULTS: data/sdl-sound1.2-1.0.3/SDL_sound_internal.h:44:19: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. #define SNDDBG(x) printf x data/sdl-sound1.2-1.0.3/decoders/mpglib/mpglib_sdlsound.h:6:13: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. #define snprintf _snprintf data/sdl-sound1.2-1.0.3/decoders/mpglib/mpglib_sdlsound.h:6:22: [4] (format) _snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. #define snprintf _snprintf data/sdl-sound1.2-1.0.3/decoders/timidity/common.c:72:6: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(current_filename, plp->path); data/sdl-sound1.2-1.0.3/decoders/timidity/common.c:79:2: [4] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). strcat(current_filename, name); data/sdl-sound1.2-1.0.3/decoders/timidity/common.c:119:3: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(plp->path, s); data/sdl-sound1.2-1.0.3/decoders/timidity/instrum.c:190:8: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(tmp, name); data/sdl-sound1.2-1.0.3/decoders/timidity/instrum.c:191:8: [4] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). strcat(tmp, patch_ext[i]); data/sdl-sound1.2-1.0.3/decoders/timidity/timidity.c:309:7: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy((bank->tone[i].name=safe_malloc(strlen(w[1])+1)),w[1]); data/sdl-sound1.2-1.0.3/playsound/playsound.c:237:5: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(path, filename); data/sdl-sound1.2-1.0.3/playsound/playsound.c:271:9: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(path, fname); data/sdl-sound1.2-1.0.3/playsound/playsound.c:646:5: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(list, _list); data/sdl-sound1.2-1.0.3/decoders/mpglib/mpg123_sdlsound.h:22:10: [3] (random) random: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. # define random rand data/sdl-sound1.2-1.0.3/decoders/mpglib/mpg123_sdlsound.h:23:10: [3] (random) srandom: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. # define srandom srand data/sdl-sound1.2-1.0.3/decoders/mpglib/mpg123_sdlsound.h:23:18: [3] (random) srand: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. # define srandom srand data/sdl-sound1.2-1.0.3/SDL_sound.c:189:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char error_string[128]; data/sdl-sound1.2-1.0.3/SDL_sound.c:482:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&retval->desired, desired, sizeof (Sound_AudioInfo)); data/sdl-sound1.2-1.0.3/SDL_sound.c:531:17: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if (!funcs->open(sample, ext)) data/sdl-sound1.2-1.0.3/SDL_sound.c:541:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&desired, (_desired != NULL) ? _desired : &sample->actual, data/sdl-sound1.2-1.0.3/SDL_sound.c:581:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&sample->desired, &desired, sizeof (Sound_AudioInfo)); data/sdl-sound1.2-1.0.3/SDL_sound.c:843:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy( ((char *) buf) + newBufSize, sample->buffer, br ); data/sdl-sound1.2-1.0.3/SDL_sound_internal.h:135:11: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). int (*open)(Sound_Sample *sample, const char *ext); data/sdl-sound1.2-1.0.3/decoders/modplug.c:237:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&sample->actual, ¤t_audioinfo, sizeof (Sound_AudioInfo)); data/sdl-sound1.2-1.0.3/decoders/modplug.c:242:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&sample->actual, &sample->desired, sizeof (Sound_AudioInfo)); data/sdl-sound1.2-1.0.3/decoders/modplug.c:250:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(¤t_audioinfo, &sample->actual, sizeof (Sound_AudioInfo)); data/sdl-sound1.2-1.0.3/decoders/mpglib.c:205:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(((Uint8 *) internal->buffer) + bw, data/sdl-sound1.2-1.0.3/decoders/mpglib/interface.c:64:2: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(nbuf->pnt,buf,size); data/sdl-sound1.2-1.0.3/decoders/mpglib/interface.c:195:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(wordpointer+len,mp->tail->pnt+mp->tail->pos,nlen); data/sdl-sound1.2-1.0.3/decoders/mpglib/interface.c:229:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char err[128]; data/sdl-sound1.2-1.0.3/decoders/mpglib/interface.c:236:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(wordpointer,bsbufold+mp->fsizeold-backstep,backstep); data/sdl-sound1.2-1.0.3/decoders/mpglib/layer3.c:461:26: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char slen[2][16] = { data/sdl-sound1.2-1.0.3/decoders/mpglib/layer3.c:551:19: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static unsigned char stab[3][6][4] = { data/sdl-sound1.2-1.0.3/decoders/mpglib/layer3.c:958:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char err[128]; data/sdl-sound1.2-1.0.3/decoders/mpglib/layer3.c:1372:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char err[128]; data/sdl-sound1.2-1.0.3/decoders/mpglib/main.c:7:1: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[16384]; data/sdl-sound1.2-1.0.3/decoders/mpglib/main.c:13:2: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char out[8192]; data/sdl-sound1.2-1.0.3/decoders/mpglib/mpglib_common.c:155:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char *modes[4] = { "Stereo", "Joint-Stereo", "Dual-Channel", "Single-Channel" }; data/sdl-sound1.2-1.0.3/decoders/mpglib/mpglib_common.c:156:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char *layers[4] = { "Unknown" , "I", "II", "III" }; data/sdl-sound1.2-1.0.3/decoders/mpglib/mpglib_common.c:172:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char *modes[4] = { "stereo", "joint-stereo", "dual-channel", "mono" }; data/sdl-sound1.2-1.0.3/decoders/mpglib/mpglib_common.c:173:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char *layers[4] = { "Unknown" , "I", "II", "III" }; data/sdl-sound1.2-1.0.3/decoders/mpglib/mpglib_sdlsound.h:30:11: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char bsspace[2][MAXFRAMESIZE+512]; /* MAXFRAMESIZE */ data/sdl-sound1.2-1.0.3/decoders/raw.c:122:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&sample->actual, &sample->desired, sizeof (Sound_AudioInfo)); data/sdl-sound1.2-1.0.3/decoders/shn.c:521:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(word, chars, sizeof (*word)); data/sdl-sound1.2-1.0.3/decoders/shn.c:541:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(word, chars, sizeof (*word)); data/sdl-sound1.2-1.0.3/decoders/shn.c:676:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(shn, &_shn, sizeof (shn_t)); data/sdl-sound1.2-1.0.3/decoders/shn.c:1057:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy((char *)internal->buffer + bw, shn->backBuffer, i); data/sdl-sound1.2-1.0.3/decoders/shn.c:1059:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(shn->backBuffer, shn->backBuffer + i, shn->backBufLeft); data/sdl-sound1.2-1.0.3/decoders/shn.c:1082:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(internal->buffer, shn->backBuffer, retval); data/sdl-sound1.2-1.0.3/decoders/shn.c:1084:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(shn->backBuffer, shn->backBuffer + retval, shn->backBufLeft); data/sdl-sound1.2-1.0.3/decoders/speex.c:135:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&header, hptr, sizeof (SpeexHeader)); /* move to stack. */ data/sdl-sound1.2-1.0.3/decoders/timidity/common.c:62:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char current_filename[1024]; data/sdl-sound1.2-1.0.3/decoders/timidity/instrum.c:175:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char tmp[1024]; data/sdl-sound1.2-1.0.3/decoders/timidity/instrum_dls.c:221:12: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char prefix[128]; data/sdl-sound1.2-1.0.3/decoders/timidity/instrum_dls.c:1163:3: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(sample->data, wave->data, wave->length); data/sdl-sound1.2-1.0.3/decoders/timidity/readmidi.c:280:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char tmp[4]; data/sdl-sound1.2-1.0.3/decoders/timidity/readmidi.c:502:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char tmp[4]; data/sdl-sound1.2-1.0.3/decoders/timidity/resample.c:556:16: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const char note_name[12][3] = data/sdl-sound1.2-1.0.3/decoders/timidity/timidity.c:48:8: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char def_instr_name[256] = ""; data/sdl-sound1.2-1.0.3/decoders/timidity/timidity.c:85:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char tmp[1024], *w[MAXWORDS], *cp; data/sdl-sound1.2-1.0.3/decoders/timidity/timidity.c:248:9: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). i=atoi(w[1]); data/sdl-sound1.2-1.0.3/decoders/timidity/timidity.c:271:9: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). i=atoi(w[1]); data/sdl-sound1.2-1.0.3/decoders/timidity/timidity.c:294:9: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). i=atoi(w[0]); data/sdl-sound1.2-1.0.3/decoders/timidity/timidity.c:324:6: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). k=atoi(cp); data/sdl-sound1.2-1.0.3/decoders/timidity/timidity.c:335:6: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). k=atoi(cp); data/sdl-sound1.2-1.0.3/decoders/timidity/timidity.c:353:10: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). k=((atoi(cp)+100) * 100) / 157; data/sdl-sound1.2-1.0.3/playsound/playsound.c:493:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(dst, src, len); data/sdl-sound1.2-1.0.3/playsound/playsound.c:620:23: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). minutes = atoi(str); data/sdl-sound1.2-1.0.3/playsound/playsound.c:625:19: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). seconds = atoi(str); data/sdl-sound1.2-1.0.3/playsound/playsound.c:629:10: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). ms = atoi(str); data/sdl-sound1.2-1.0.3/playsound/playsound.c:850:34: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). sound_desired.rate = atoi(argv[++i]); data/sdl-sound1.2-1.0.3/playsound/playsound.c:873:38: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). sound_desired.channels = atoi(argv[++i]); data/sdl-sound1.2-1.0.3/playsound/playsound.c:885:32: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). audio_buffersize = atoi(argv[++i]); data/sdl-sound1.2-1.0.3/playsound/playsound.c:890:33: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). decode_buffersize = atoi(argv[++i]); data/sdl-sound1.2-1.0.3/playsound/playsound.c:907:36: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). global_state.looping = atoi(argv[++i]); data/sdl-sound1.2-1.0.3/playsound/playsound_simple.c:100:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(stream + bw, (Uint8 *) data->decoded_ptr, cpysize); data/sdl-sound1.2-1.0.3/SDL_sound.c:394:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(err->error_string, str, sizeof (err->error_string)); data/sdl-sound1.2-1.0.3/SDL_sound.c:805:31: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). retval = internal->funcs->read(sample); data/sdl-sound1.2-1.0.3/SDL_sound_internal.h:181:14: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). Uint32 (*read)(Sound_Sample *sample); data/sdl-sound1.2-1.0.3/decoders/mpglib/main.c:20:9: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). len = read(0,buf,16384); data/sdl-sound1.2-1.0.3/decoders/timidity/common.c:69:6: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). l = strlen(plp->path); data/sdl-sound1.2-1.0.3/decoders/timidity/common.c:112:27: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). plp->path = safe_malloc(strlen(s) + 1); data/sdl-sound1.2-1.0.3/decoders/timidity/instrum.c:188:8: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strlen(name)+strlen(patch_ext[i])<1024) data/sdl-sound1.2-1.0.3/decoders/timidity/instrum.c:188:21: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strlen(name)+strlen(patch_ext[i])<1024) data/sdl-sound1.2-1.0.3/decoders/timidity/timidity.c:238:7: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(def_instr_name, w[1], 255); data/sdl-sound1.2-1.0.3/decoders/timidity/timidity.c:309:46: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). strcpy((bank->tone[i].name=safe_malloc(strlen(w[1])+1)),w[1]); data/sdl-sound1.2-1.0.3/extra_rwops.c:57:22: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). return(data->rw->read(data->rw, ptr, size, maxnum)); data/sdl-sound1.2-1.0.3/playsound/playsound.c:228:34: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). char *path = (char *) malloc(strlen(filename) + 1); data/sdl-sound1.2-1.0.3/playsound/playsound.c:269:38: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). char *path = (char *) malloc(strlen(fname) + 1); data/sdl-sound1.2-1.0.3/playsound/playsound.c:638:33: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). char *list = (char*) malloc(strlen(_list) + 1); ANALYSIS SUMMARY: Hits = 89 Lines analyzed = 23741 in approximately 0.68 seconds (35021 lines/second) Physical Source Lines of Code (SLOC) = 16602 Hits@level = [0] 137 [1] 14 [2] 60 [3] 3 [4] 12 [5] 0 Hits@level+ = [0+] 226 [1+] 89 [2+] 75 [3+] 15 [4+] 12 [5+] 0 Hits/KSLOC@level+ = [0+] 13.6128 [1+] 5.3608 [2+] 4.51753 [3+] 0.903506 [4+] 0.722804 [5+] 0 Dot directories skipped = 1 (--followdotdir overrides) Minimum risk level = 1 Not every hit is necessarily a security vulnerability. There may be other security vulnerabilities; review your code! See 'Secure Programming HOWTO' (https://dwheeler.com/secure-programs) for more information.