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/liboggplay-0.2.1~git20091227/win32/config_win32.h
Examining data/liboggplay-0.2.1~git20091227/include/oggplay/oggplay_seek.h
Examining data/liboggplay-0.2.1~git20091227/include/oggplay/oggplay_tools.h
Examining data/liboggplay-0.2.1~git20091227/include/oggplay/oggplay_enums.h
Examining data/liboggplay-0.2.1~git20091227/include/oggplay/oggplay_reader.h
Examining data/liboggplay-0.2.1~git20091227/include/oggplay/oggplay_callback_info.h
Examining data/liboggplay-0.2.1~git20091227/include/oggplay/oggplay_query.h
Examining data/liboggplay-0.2.1~git20091227/include/oggplay/oggplay.h
Examining data/liboggplay-0.2.1~git20091227/src/examples/dump-all-streams.c
Examining data/liboggplay-0.2.1~git20091227/src/examples/get-stream-info.c
Examining data/liboggplay-0.2.1~git20091227/src/examples/glut-player.c
Examining data/liboggplay-0.2.1~git20091227/src/tests/noop.c
Examining data/liboggplay-0.2.1~git20091227/src/tests/oggplay_tests.h
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_tcp_reader.c
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/x86/oggplay_yuv2rgb_x86.c
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/x86/yuv2rgb_x86_vs.h
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/x86/yuv2rgb_x86.h
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/cpu.h
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_callback.h
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_seek.c
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/std_semaphore.h
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_file_reader.h
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_buffer.c
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_file_reader.c
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/ppc/oggplay_yuv2rgb_altivec.c
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_query.c
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_yuv2rgb.c
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_data.h
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_callback_info.c
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_tools.c
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_yuv2rgb_template.h
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_tcp_reader.h
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/cpu.c
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_private.h
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_buffer.h
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_data.c
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay.c
Examining data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_callback.c
Examining data/liboggplay-0.2.1~git20091227/src/tools/oggplay-dump-first-frame.c
Examining data/liboggplay-0.2.1~git20091227/src/tools/oggplay-info.c

FINAL RESULTS:

data/liboggplay-0.2.1~git20091227/win32/config_win32.h:68:9:  [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/liboggplay-0.2.1~git20091227/win32/config_win32.h:68:18:  [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/liboggplay-0.2.1~git20091227/src/examples/dump-all-streams.c:15: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              fname[256];
data/liboggplay-0.2.1~git20091227/src/examples/dump-all-streams.c:26:3:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
  sprintf(fname, "y_frame%d", frame);
data/liboggplay-0.2.1~git20091227/src/examples/dump-all-streams.c:27:7:  [2] (misc) fopen:
  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).
  f = fopen(fname, "w");
data/liboggplay-0.2.1~git20091227/src/examples/dump-all-streams.c:41:3:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
  sprintf(fname, "u_frame%d", frame);
data/liboggplay-0.2.1~git20091227/src/examples/dump-all-streams.c:42:7:  [2] (misc) fopen:
  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).
  f = fopen(fname, "w");
data/liboggplay-0.2.1~git20091227/src/examples/dump-all-streams.c:43:3:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
  sprintf(fname, "v_frame%d", frame);
data/liboggplay-0.2.1~git20091227/src/examples/dump-all-streams.c:44:7:  [2] (misc) fopen:
  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).
  g = fopen(fname, "w");
data/liboggplay-0.2.1~git20091227/src/examples/glut-player.c:184: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(dest, src, overlay_data->width*4);
data/liboggplay-0.2.1~git20091227/src/examples/glut-player.c:248:12:  [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).
  snd_fd = open("/dev/dsp", O_WRONLY, 0);
data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_data.c:343: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 (record->data, data, samples_size);
data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_data.c:387: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(record->data, data, size);
data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_data.c:485: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(p, q, decode->y_width);
data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_data.c:496: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(p, q, decode->uv_width);
data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_data.c:497: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(p2, q2, decode->uv_width);
data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_data.c:621: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(record->data, ev->text, ev->len0);
data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_file_reader.c:56:14:  [2] (misc) fopen:
  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).
  me->file = fopen(me->file_name, "rb");
data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_tcp_reader.c:296: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                  http_request_header[1024];
data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_tcp_reader.c:371: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(&addr.sin_addr.s_addr, he->h_addr, he->h_length);
data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_tcp_reader.c:482:25:  [2] (tmpfile) tmpfile:
  Function tmpfile() has a security flaw on some systems (e.g., older System
  V systems) (CWE-377).
    me->backing_store = tmpfile();
data/liboggplay-0.2.1~git20091227/src/liboggplay/x86/oggplay_yuv2rgb_x86.c:58: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                    b[16];
data/liboggplay-0.2.1~git20091227/src/liboggplay/x86/oggplay_yuv2rgb_x86.c:59: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           ub[16];
data/liboggplay-0.2.1~git20091227/src/tools/oggplay-dump-first-frame.c:19:13:  [2] (misc) fopen:
  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).
  FILE *f = fopen("out.rgb", "wb");
data/liboggplay-0.2.1~git20091227/src/tools/oggplay-dump-first-frame.c:47:13:  [2] (misc) fopen:
  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).
  FILE *f = fopen("out.y", "wb");
data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_tcp_reader.c:397:11:  [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).
    len = strlen(http_request_header);
data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_tcp_reader.c:434:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
      nbytes = read(me->socket, (char*)(me->buffer + me->amount_in_memory),
data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_tcp_reader.c:507:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
      nbytes = read(me->socket, me->buffer + me->amount_in_memory, remaining);
data/liboggplay-0.2.1~git20091227/src/liboggplay/oggplay_tcp_reader.c:610:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  r = read(me->socket, me->buffer + me->amount_in_memory, remaining);
data/liboggplay-0.2.1~git20091227/src/tools/oggplay-dump-first-frame.c:118:7:  [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(argv[1]) > 7 && (strncmp(argv[1], "http://", 7) == 0)) {

ANALYSIS SUMMARY:

Hits = 30
Lines analyzed = 10188 in approximately 0.37 seconds (27350 lines/second)
Physical Source Lines of Code (SLOC) = 6208
Hits@level = [0]  73 [1]   5 [2]  23 [3]   0 [4]   2 [5]   0
Hits@level+ = [0+] 103 [1+]  30 [2+]  25 [3+]   2 [4+]   2 [5+]   0
Hits/KSLOC@level+ = [0+] 16.5915 [1+] 4.83247 [2+] 4.02706 [3+] 0.322165 [4+] 0.322165 [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.