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/libomxvorbis-0.1/src/library_entry_point.c Examining data/libomxvorbis-0.1/src/omx_vorbisdec_component.h Examining data/libomxvorbis-0.1/src/omx_vorbisdec_component.c FINAL RESULTS: data/libomxvorbis-0.1/src/omx_vorbisdec_component.c:677: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( (char*) pComponentRole->cRole, AUDIO_DEC_VORBIS_ROLE); data/libomxvorbis-0.1/src/omx_vorbisdec_component.c:472:31: [3] (random) drand48: 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. val=mono[j]*32767.f+drand48()-0.5f; data/libomxvorbis-0.1/src/library_entry_point.c:67:3: [2] (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). Risk is low because the source is a constant string. strcpy(stComponents[0]->name, "OMX.st.audio_decoder.ogg.single"); data/libomxvorbis-0.1/src/library_entry_point.c:82:3: [2] (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). Risk is low because the source is a constant string. strcpy(stComponents[0]->name_specific[0], "OMX.st.audio_decoder.ogg.single"); data/libomxvorbis-0.1/src/library_entry_point.c:83:3: [2] (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). Risk is low because the source is a constant string. strcpy(stComponents[0]->role_specific[0], "audio_decoder.ogg"); data/libomxvorbis-0.1/src/omx_vorbisdec_component.c:98:3: [2] (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). Risk is low because the source is a constant string. strcpy(inPort->sPortParam.format.audio.cMIMEType, "audio/vorbis"); data/libomxvorbis-0.1/src/omx_vorbisdec_component.c:199:5: [2] (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). Risk is low because the source is a constant string. strcpy(omx_vorbisdec_component_Private->ports[OMX_BASE_FILTER_INPUTPORT_INDEX]->sPortParam.format.audio.cMIMEType, "audio/vorbis"); data/libomxvorbis-0.1/src/omx_vorbisdec_component.c:296: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(vorbis_buffer, inputbuffer->pBuffer, inputbuffer->nFilledLen); data/libomxvorbis-0.1/src/omx_vorbisdec_component.c:491:7: [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(outputCurrBuffer,(char *)convbuffer,outputbuffer->nFilledLen); data/libomxvorbis-0.1/src/omx_vorbisdec_component.c:545:7: [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(&port->sAudioParam,pAudioPortFormat, sizeof(OMX_AUDIO_PARAM_PORTFORMATTYPE)); data/libomxvorbis-0.1/src/omx_vorbisdec_component.c:560: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(&omx_vorbisdec_component_Private->pAudioPcmMode, pAudioPcmMode, sizeof(OMX_AUDIO_PARAM_PCMMODETYPE)); data/libomxvorbis-0.1/src/omx_vorbisdec_component.c:572:7: [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(&omx_vorbisdec_component_Private->pAudioVorbis, pAudioVorbis, sizeof(OMX_AUDIO_PARAM_VORBISTYPE)); data/libomxvorbis-0.1/src/omx_vorbisdec_component.c:633: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(ComponentParameterStructure, &omx_vorbisdec_component_Private->sPortTypesParam[OMX_PortDomainAudio], sizeof(OMX_PORT_PARAM_TYPE)); data/libomxvorbis-0.1/src/omx_vorbisdec_component.c:643:7: [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(pAudioPortFormat, &port->sAudioParam, sizeof(OMX_AUDIO_PARAM_PORTFORMATTYPE)); data/libomxvorbis-0.1/src/omx_vorbisdec_component.c:657: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(pAudioPcmMode, &omx_vorbisdec_component_Private->pAudioPcmMode, sizeof(OMX_AUDIO_PARAM_PCMMODETYPE)); data/libomxvorbis-0.1/src/omx_vorbisdec_component.c:668: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(pAudioVorbis, &omx_vorbisdec_component_Private->pAudioVorbis, sizeof(OMX_AUDIO_PARAM_VORBISTYPE)); data/libomxvorbis-0.1/src/omx_vorbisdec_component.c:679:7: [1] (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). Risk is low because the source is a constant character. strcpy( (char*) pComponentRole->cRole, "\0");; ANALYSIS SUMMARY: Hits = 17 Lines analyzed = 917 in approximately 0.11 seconds (8365 lines/second) Physical Source Lines of Code (SLOC) = 606 Hits@level = [0] 0 [1] 1 [2] 14 [3] 1 [4] 1 [5] 0 Hits@level+ = [0+] 17 [1+] 17 [2+] 16 [3+] 2 [4+] 1 [5+] 0 Hits/KSLOC@level+ = [0+] 28.0528 [1+] 28.0528 [2+] 26.4026 [3+] 3.30033 [4+] 1.65017 [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.