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/libdv-1.0.0/libdv/YUY2.h Examining data/libdv-1.0.0/libdv/bitstream.h Examining data/libdv-1.0.0/libdv/parse.h Examining data/libdv-1.0.0/libdv/rgb.h Examining data/libdv-1.0.0/libdv/YV12.h Examining data/libdv-1.0.0/libdv/dct.h Examining data/libdv-1.0.0/libdv/idct_248.h Examining data/libdv-1.0.0/libdv/place.h Examining data/libdv-1.0.0/libdv/vlc.h Examining data/libdv-1.0.0/libdv/quant.h Examining data/libdv-1.0.0/libdv/weighting.h Examining data/libdv-1.0.0/libdv/audio.h Examining data/libdv-1.0.0/libdv/encode.h Examining data/libdv-1.0.0/libdv/enc_input.h Examining data/libdv-1.0.0/libdv/enc_audio_input.h Examining data/libdv-1.0.0/libdv/enc_output.h Examining data/libdv-1.0.0/libdv/headers.h Examining data/libdv-1.0.0/libdv/util.h Examining data/libdv-1.0.0/libdv/asmoff.h Examining data/libdv-1.0.0/libdv/mmx.h Examining data/libdv-1.0.0/libdv/dv.h Examining data/libdv-1.0.0/libdv/dv.c Examining data/libdv-1.0.0/libdv/dct.c Examining data/libdv-1.0.0/libdv/idct_248.c Examining data/libdv-1.0.0/libdv/weighting.c Examining data/libdv-1.0.0/libdv/quant.c Examining data/libdv-1.0.0/libdv/vlc.c Examining data/libdv-1.0.0/libdv/place.c Examining data/libdv-1.0.0/libdv/parse.c Examining data/libdv-1.0.0/libdv/bitstream.c Examining data/libdv-1.0.0/libdv/YUY2.c Examining data/libdv-1.0.0/libdv/YV12.c Examining data/libdv-1.0.0/libdv/rgb.c Examining data/libdv-1.0.0/libdv/audio.c Examining data/libdv-1.0.0/libdv/util.c Examining data/libdv-1.0.0/libdv/headers.c Examining data/libdv-1.0.0/libdv/enc_input.c Examining data/libdv-1.0.0/libdv/enc_audio_input.c Examining data/libdv-1.0.0/libdv/enc_output.c Examining data/libdv-1.0.0/libdv/dovlc.c Examining data/libdv-1.0.0/libdv/enctest.c Examining data/libdv-1.0.0/libdv/gasmoff.c Examining data/libdv-1.0.0/libdv/recode.c Examining data/libdv-1.0.0/libdv/reppm.c Examining data/libdv-1.0.0/libdv/testbitstream.c Examining data/libdv-1.0.0/libdv/testvlc.c Examining data/libdv-1.0.0/libdv/dv_types.h Examining data/libdv-1.0.0/libdv/encode.c Examining data/libdv-1.0.0/encodedv/dvavi.c Examining data/libdv-1.0.0/encodedv/fix_headers.c Examining data/libdv-1.0.0/encodedv/ppmqscale.c Examining data/libdv-1.0.0/encodedv/scan_packet_headers.c Examining data/libdv-1.0.0/encodedv/steal_header.c Examining data/libdv-1.0.0/encodedv/dvconnect.c Examining data/libdv-1.0.0/encodedv/encodedv.c Examining data/libdv-1.0.0/encodedv/insert_audio.c Examining data/libdv-1.0.0/playdv/display.h Examining data/libdv-1.0.0/playdv/oss.h Examining data/libdv-1.0.0/playdv/display.c Examining data/libdv-1.0.0/playdv/oss.c Examining data/libdv-1.0.0/playdv/playdv.c FINAL RESULTS: data/libdv-1.0.0/libdv/audio.c:162:24: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. if(!(dv_aaux_as->pc3.system < 2)) goto unknown_format; data/libdv-1.0.0/libdv/audio.c:164:66: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. result = dv_aaux_as->pc1.af_size + min_samples[dv_aaux_as->pc3.system][col]; data/libdv-1.0.0/libdv/audio.c:170:34: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. __FUNCTION__, dv_aaux_as->pc3.system, dv_aaux_as->pc4.smp); data/libdv-1.0.0/libdv/audio.c:323:22: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. (dv_aaux_as->pc3.system ? 50 : 60)); data/libdv-1.0.0/libdv/audio.c:372:53: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. audio->max_samples = max_samples[dv_aaux_as->pc3.system][dv_aaux_as->pc4.smp]; data/libdv-1.0.0/libdv/audio.c:437:28: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. if (dv_aaux_as -> pc3. system) data/libdv-1.0.0/libdv/audio.c:581:36: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. half_ds = (dv_audio->aaux_as.pc3.system ? 6 : 5); data/libdv-1.0.0/libdv/audio.c:590:28: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. if(dv_audio->aaux_as.pc3.system) { data/libdv-1.0.0/libdv/audio.c:1028:31: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. if(dv->audio->aaux_as.pc3.system) { data/libdv-1.0.0/libdv/dv_types.h:315:11: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. uint8_t system :1; // 0 = 60 fields, 1 = 50 field data/libdv-1.0.0/libdv/dv_types.h:321:11: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. uint8_t system :1; // 0 = 60 fields, 1 = 50 field data/libdv-1.0.0/libdv/dv_types.h:472:22: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. dv_system_t system; data/libdv-1.0.0/libdv/encode.c:1425:3: [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. snprintf(fbuf, 1024, filename, i); data/libdv-1.0.0/libdv/encode.c:1440:3: [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. snprintf(fbuf, 1024, filename, i); data/libdv-1.0.0/libdv/mmx.h:251:3: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr, #op "_i2r(" #imm "=0x%08x%08x, ", \ data/libdv-1.0.0/libdv/mmx.h:256:3: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr, #reg "=0x%08x%08x) => ", \ data/libdv-1.0.0/libdv/mmx.h:264:3: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr, #reg "=0x%08x%08x\n", \ data/libdv-1.0.0/libdv/mmx.h:272:3: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr, #op "_m2r(" #mem "=0x%08x%08x, ", \ data/libdv-1.0.0/libdv/mmx.h:277:3: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr, #reg "=0x%08x%08x) => ", \ data/libdv-1.0.0/libdv/mmx.h:285:3: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr, #reg "=0x%08x%08x\n", \ data/libdv-1.0.0/libdv/mmx.h:295:3: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr, #op "_r2m(" #reg "=0x%08x%08x, ", \ data/libdv-1.0.0/libdv/mmx.h:298:3: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr, #mem "=0x%08x%08x) => ", \ data/libdv-1.0.0/libdv/mmx.h:304:3: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr, #mem "=0x%08x%08x\n", \ data/libdv-1.0.0/libdv/mmx.h:314:3: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr, #op "_r2r(" #regs "=0x%08x%08x, ", \ data/libdv-1.0.0/libdv/mmx.h:319:3: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr, #regd "=0x%08x%08x) => ", \ data/libdv-1.0.0/libdv/mmx.h:325:3: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr, #regd "=0x%08x%08x\n", \ data/libdv-1.0.0/libdv/mmx.h:333:3: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr, #op "_m2m(" #mems "=0x%08x%08x, ", \ data/libdv-1.0.0/libdv/mmx.h:336:3: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr, #memd "=0x%08x%08x) => ", \ data/libdv-1.0.0/libdv/mmx.h:344:3: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr, #memd "=0x%08x%08x\n", \ data/libdv-1.0.0/libdv/parse.c:63:35: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. #define vlc_trace(format,args...) fprintf(stdout,format,##args) data/libdv-1.0.0/libdv/parse.c:73:3: [4] (format) vfprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. vfprintf(stdout, format, argp); data/libdv-1.0.0/libdv/parse.c:829:23: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. prev_system = dv->system; data/libdv-1.0.0/libdv/parse.c:832:28: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. if (prev_system != dv->system) { data/libdv-1.0.0/playdv/playdv.c:412:68: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. dv_display_set_norm (dv_player->display, dv_player->decoder->system); data/libdv-1.0.0/playdv/playdv.c:467:11: [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. snprintf(fname, 4096, dv_player->arg_dump_frames, data/libdv-1.0.0/encodedv/dvavi.c:56:18: [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 buf[4]; data/libdv-1.0.0/encodedv/dvavi.c:70:18: [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 buf[2]; data/libdv-1.0.0/encodedv/dvavi.c:81:18: [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 buf[4]; data/libdv-1.0.0/encodedv/dvavi.c:118: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 buf[1024]; data/libdv-1.0.0/encodedv/dvavi.c:138: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 buffer[NODE_SIZE]; data/libdv-1.0.0/encodedv/dvavi.c:344:4: [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, it->buffer + it->processed, real_usage); data/libdv-1.0.0/encodedv/dvavi.c:349:4: [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, it->buffer + it->processed, audio_needed); data/libdv-1.0.0/encodedv/dvavi.c:484:12: [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). in_avi = fopen(argv[1], "r"); data/libdv-1.0.0/encodedv/dvconnect.c:141: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 data[144000]; /* FIXME: We are wasting space on NTSC! */ data/libdv-1.0.0/encodedv/dvconnect.c:294: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_out, data + 12, 480); data/libdv-1.0.0/encodedv/dvconnect.c:349: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 outbuf[2*65536]; data/libdv-1.0.0/encodedv/dvconnect.c:359:12: [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). dst_fp = fopen(filename, "wb"); data/libdv-1.0.0/encodedv/dvconnect.c:366:16: [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 ((viddev = open(device, O_RDWR)) < 0) { data/libdv-1.0.0/encodedv/dvconnect.c:436: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(outbuf + outbuf_used, curr+ofs, data/libdv-1.0.0/encodedv/dvconnect.c:441: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(outbuf + outbuf_used, data/libdv-1.0.0/encodedv/dvconnect.c:526:12: [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). src_fp = fopen(src_filenames[-1], "rb"); data/libdv-1.0.0/encodedv/dvconnect.c:626: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(f_node->data, underrun_data_frame, data/libdv-1.0.0/encodedv/dvconnect.c:675:4: [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, frame + vdata, 480); data/libdv-1.0.0/encodedv/dvconnect.c:718:15: [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 * fp = fopen(underrun_data_filename, "rb"); data/libdv-1.0.0/encodedv/dvconnect.c:736: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. unsigned char frame[144000]; /* PAL is large enough... */ data/libdv-1.0.0/encodedv/dvconnect.c:754:16: [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 ((viddev = open(device,O_RDWR)) < 0) { data/libdv-1.0.0/encodedv/fix_headers.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 frame_buf[144000]; data/libdv-1.0.0/encodedv/insert_audio.c:100: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 frame_buf[144000]; data/libdv-1.0.0/encodedv/insert_audio.c:289:19: [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* out_vid = fopen(filename, "r+"); data/libdv-1.0.0/encodedv/insert_audio.c:290:12: [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). in_vid = fopen(filename, "r"); data/libdv-1.0.0/encodedv/ppmqscale.c:34: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 line[200]; data/libdv-1.0.0/encodedv/ppmqscale.c:297: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(out, in, dst_height * dst_width * 3); data/libdv-1.0.0/encodedv/ppmqscale.c:316:14: [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). out_width = atoi(argv[1]); data/libdv-1.0.0/encodedv/ppmqscale.c:317:15: [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). out_height = atoi(argv[2]); data/libdv-1.0.0/encodedv/scan_packet_headers.c:35: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 buf[80]; data/libdv-1.0.0/encodedv/steal_header.c:40: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 buf_ren[80]; data/libdv-1.0.0/encodedv/steal_header.c:41: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 buf_cap[80]; data/libdv-1.0.0/encodedv/steal_header.c:51: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). in_ren = open(argv[1], O_RDONLY); data/libdv-1.0.0/encodedv/steal_header.c:52: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). in_cap = open(argv[2], O_RDONLY); data/libdv-1.0.0/libdv/YUY2.c:48:17: [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 real_uvlut[256], *uvlut; data/libdv-1.0.0/libdv/YUY2.c:49:17: [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 real_ylut[768], *ylut; data/libdv-1.0.0/libdv/YUY2.c:50:17: [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 real_ylut_setup[768], *ylut_setup; data/libdv-1.0.0/libdv/YV12.c:39:17: [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 real_uvlut[256], *uvlut; data/libdv-1.0.0/libdv/YV12.c:40:17: [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 real_ylut[768], *ylut; data/libdv-1.0.0/libdv/audio.c:574: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 err_msg1 [40], data/libdv-1.0.0/libdv/audio.c:951: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 (dv -> audio -> new_recording_current_time_stamp, data/libdv-1.0.0/libdv/audio.c:984: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 (dv -> audio -> new_recording_current_time_stamp, data/libdv-1.0.0/libdv/dct.c:299: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(s_in, s_out, 64 * sizeof(short)); data/libdv-1.0.0/libdv/dovlc.c:39: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 buffer[256]; data/libdv-1.0.0/libdv/dv.c:616: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. char err_msg1 [40], err_msg2 [40]; data/libdv-1.0.0/libdv/dv.c:666: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 (data, dv -> vaux_data [id], 4); data/libdv-1.0.0/libdv/dv.c:678: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 (data, dv -> ssyb_data [id], 4); data/libdv-1.0.0/libdv/dv.c:801:5: [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 (tstptr, data/libdv-1.0.0/libdv/dv.c:814: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 (tstptr, "00:00:00.00"); data/libdv-1.0.0/libdv/dv.c:856:5: [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 (dtptr, data/libdv-1.0.0/libdv/dv.c:878:5: [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 (dtptr, data/libdv-1.0.0/libdv/dv.c:893: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 (dtptr, "0000-00-00 00:00:00"); data/libdv-1.0.0/libdv/enc_audio_input.c:86: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(out_buf, in_buf, 2*num_samples); data/libdv-1.0.0/libdv/enc_audio_input.c:116: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 buf[4]; data/libdv-1.0.0/libdv/enc_audio_input.c:128: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 buf[2]; data/libdv-1.0.0/libdv/enc_audio_input.c:139: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 buf[4]; data/libdv-1.0.0/libdv/enc_audio_input.c:154: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 fmt_header_junk[1024]; data/libdv-1.0.0/libdv/enc_audio_input.c:233: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). audio_fp = fopen(filename, "r"); data/libdv-1.0.0/libdv/enc_audio_input.c:257: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 data[DV_AUDIO_MAX_SAMPLES * 2 * 2]; data/libdv-1.0.0/libdv/enc_audio_input.c:288:13: [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). audio_fd = open(filename, O_RDONLY); data/libdv-1.0.0/libdv/enc_audio_input.c:359: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 data[DV_AUDIO_MAX_SAMPLES * 2 * 2]; data/libdv-1.0.0/libdv/enc_audio_input.h:47: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. unsigned char data[DV_AUDIO_MAX_SAMPLES * 2 * 4]; /* max 48000.0 Hz PAL */ data/libdv-1.0.0/libdv/enc_input.c:309: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 line[200]; data/libdv-1.0.0/libdv/enc_input.c:339: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(readbuf + DV_WIDTH * height*3, data/libdv-1.0.0/libdv/enc_input.c:381:12: [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). ppm_in = fopen(filename, "r"); data/libdv-1.0.0/libdv/enc_input.c:644: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 line[200]; data/libdv-1.0.0/libdv/enc_input.c:675: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(readbuf + DV_WIDTH * height, data/libdv-1.0.0/libdv/enc_input.c:677: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(readbuf + DV_WIDTH * (height*3/2), data/libdv-1.0.0/libdv/enc_input.c:711:12: [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). pgm_in = fopen(filename, "r"); data/libdv-1.0.0/libdv/enc_input.c:1033: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). vid_in = open(filename, O_RDWR); data/libdv-1.0.0/libdv/enc_output.c:123: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 head_50[5]; data/libdv-1.0.0/libdv/enc_output.c:124: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 head_51[5]; data/libdv-1.0.0/libdv/enc_output.c:125: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 head_52[5]; data/libdv-1.0.0/libdv/enc_output.c:126: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 head_53[5]; data/libdv-1.0.0/libdv/enc_output.c:276: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(p + 0*16*80, head_50, 5); data/libdv-1.0.0/libdv/enc_output.c:277: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(p + 1*16*80, head_51, 5); data/libdv-1.0.0/libdv/enc_output.c:278: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(p + 2*16*80, head_52, 5); data/libdv-1.0.0/libdv/enc_output.c:279: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(p + 3*16*80, head_53, 5); data/libdv-1.0.0/libdv/encode.c:519: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(bl->coeffs, zigzag, 64 * sizeof(dv_coeff_t)); data/libdv-1.0.0/libdv/encode.c:985: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(bb[b], bl->coeffs, data/libdv-1.0.0/libdv/encode.c:1046:4: [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(bb[b], bl->coeffs, 64 *sizeof(dv_coeff_t)); data/libdv-1.0.0/libdv/encode.c:1079:6: [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(bb[b], bl->coeffs, data/libdv-1.0.0/libdv/encode.c:1150:4: [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(bb[m][b], bl->coeffs, 64 * sizeof(dv_coeff_t)); data/libdv-1.0.0/libdv/encode.c:1213:4: [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(bb[m][b], bl->coeffs, 64 *sizeof(dv_coeff_t)); data/libdv-1.0.0/libdv/encode.c:1389: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 target[144000]; data/libdv-1.0.0/libdv/encode.c:1390: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 fbuf[1024]; data/libdv-1.0.0/libdv/enctest.c:18: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 rgb[720*480*4]; data/libdv-1.0.0/libdv/enctest.c:19: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 dv[120000]; data/libdv-1.0.0/libdv/mmx.h:53: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[8]; /* 8 Byte (8-bit) values */ data/libdv-1.0.0/libdv/mmx.h:54: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[8]; /* 8 Unsigned Byte */ data/libdv-1.0.0/libdv/parse.c:666:11: [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 (dv -> ssyb_data [dv -> ssyb_next], &buffer [7 + (j * 8)], 4); data/libdv-1.0.0/libdv/parse.c:757: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 (dv -> vaux_data [dv -> vaux_next], &buffer [3 + 1 + (j * 5)], 4); data/libdv-1.0.0/libdv/recode.c:56: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 dv_buffer[144000]; data/libdv-1.0.0/libdv/recode.c:57: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 video_buffer[720 * 576 * 3]; data/libdv-1.0.0/libdv/recode.c:62: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 *pixels[3]; data/libdv-1.0.0/libdv/reppm.c:39: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 dv_buffer[480 * 300]; data/libdv-1.0.0/libdv/reppm.c:40: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 video_buffer[720 * 576 * 3]; data/libdv-1.0.0/libdv/reppm.c:42: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 *pixels[3]; data/libdv-1.0.0/libdv/reppm.c:46: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 line[200]; data/libdv-1.0.0/libdv/reppm.c:55:6: [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(argv[1], "r"); data/libdv-1.0.0/libdv/reppm.c:94: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). imagefile=open(argv[2], O_WRONLY | O_CREAT | O_TRUNC, 00600); data/libdv-1.0.0/playdv/oss.c:90:20: [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 ((oss->fd = open(oss->arg_audio_file, data/libdv-1.0.0/playdv/oss.c:96:20: [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 ((oss->fd = open(device, O_RDWR, 0)) == -1) goto no_device; data/libdv-1.0.0/playdv/playdv.c:342:19: [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(-1 == (fd = open(filename,O_RDONLY))) goto openfail; data/libdv-1.0.0/playdv/playdv.c:462: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. char fname[4096]; data/libdv-1.0.0/playdv/playdv.c:469:16: [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). fp = fopen(fname, "w"); data/libdv-1.0.0/encodedv/scan_packet_headers.c:40:9: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). while (read(STDIN_FILENO, buf, 80) == 80) { data/libdv-1.0.0/encodedv/steal_header.c:56:9: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). while (read(in_ren, buf_ren, 80) == 80 && data/libdv-1.0.0/encodedv/steal_header.c:57:9: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). read(in_cap, buf_cap, 80) == 80) { data/libdv-1.0.0/libdv/dovlc.c:48:12: [1] (buffer) fgetc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). while((c=fgetc(stdin)) != EOF) { data/libdv-1.0.0/libdv/enc_audio_input.c:364:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). rval = (read(audio_fd, data, wanted) != wanted); data/libdv-1.0.0/playdv/display.c:99:9: [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 (display->arg_aspect_string) == 1) { data/libdv-1.0.0/playdv/playdv.c:252:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). int rval = read(fd, mmap_region->map_start data/libdv-1.0.0/playdv/playdv.c:489:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). {int dummy;read(0,&dummy,1);} ANALYSIS SUMMARY: Hits = 149 Lines analyzed = 20059 in approximately 0.62 seconds (32349 lines/second) Physical Source Lines of Code (SLOC) = 14669 Hits@level = [0] 253 [1] 8 [2] 106 [3] 0 [4] 35 [5] 0 Hits@level+ = [0+] 402 [1+] 149 [2+] 141 [3+] 35 [4+] 35 [5+] 0 Hits/KSLOC@level+ = [0+] 27.4047 [1+] 10.1575 [2+] 9.61211 [3+] 2.38598 [4+] 2.38598 [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.