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/multimon-ng-1.1.9+dfsg/BCHCode.h Examining data/multimon-ng-1.1.9+dfsg/BCHCode_stub.c Examining data/multimon-ng-1.1.9+dfsg/clip.c Examining data/multimon-ng-1.1.9+dfsg/costabf.c Examining data/multimon-ng-1.1.9+dfsg/costabi.c Examining data/multimon-ng-1.1.9+dfsg/demod_afsk12.c Examining data/multimon-ng-1.1.9+dfsg/demod_afsk24.c Examining data/multimon-ng-1.1.9+dfsg/demod_afsk24_2.c Examining data/multimon-ng-1.1.9+dfsg/demod_afsk24_3.c Examining data/multimon-ng-1.1.9+dfsg/demod_ccir.c Examining data/multimon-ng-1.1.9+dfsg/demod_clipfsk.c Examining data/multimon-ng-1.1.9+dfsg/demod_display.c Examining data/multimon-ng-1.1.9+dfsg/demod_dtmf.c Examining data/multimon-ng-1.1.9+dfsg/demod_dumpcsv.c Examining data/multimon-ng-1.1.9+dfsg/demod_dzvei.c Examining data/multimon-ng-1.1.9+dfsg/demod_eas.c Examining data/multimon-ng-1.1.9+dfsg/demod_eea.c Examining data/multimon-ng-1.1.9+dfsg/demod_eia.c Examining data/multimon-ng-1.1.9+dfsg/demod_flex.c Examining data/multimon-ng-1.1.9+dfsg/demod_fmsfsk.c Examining data/multimon-ng-1.1.9+dfsg/demod_fsk96.c Examining data/multimon-ng-1.1.9+dfsg/demod_hapn48.c Examining data/multimon-ng-1.1.9+dfsg/demod_morse.c Examining data/multimon-ng-1.1.9+dfsg/demod_poc12.c Examining data/multimon-ng-1.1.9+dfsg/demod_poc24.c Examining data/multimon-ng-1.1.9+dfsg/demod_poc5.c Examining data/multimon-ng-1.1.9+dfsg/demod_pzvei.c Examining data/multimon-ng-1.1.9+dfsg/demod_ufsk12.c Examining data/multimon-ng-1.1.9+dfsg/demod_x10.c Examining data/multimon-ng-1.1.9+dfsg/demod_zvei1.c Examining data/multimon-ng-1.1.9+dfsg/demod_zvei2.c Examining data/multimon-ng-1.1.9+dfsg/demod_zvei3.c Examining data/multimon-ng-1.1.9+dfsg/filter-i386.h Examining data/multimon-ng-1.1.9+dfsg/filter.h Examining data/multimon-ng-1.1.9+dfsg/fms.c Examining data/multimon-ng-1.1.9+dfsg/gen.c Examining data/multimon-ng-1.1.9+dfsg/gen.h Examining data/multimon-ng-1.1.9+dfsg/gen_clipfsk.c Examining data/multimon-ng-1.1.9+dfsg/gen_dtmf.c Examining data/multimon-ng-1.1.9+dfsg/gen_hdlc.c Examining data/multimon-ng-1.1.9+dfsg/gen_sin.c Examining data/multimon-ng-1.1.9+dfsg/gen_uart.c Examining data/multimon-ng-1.1.9+dfsg/gen_zvei.c Examining data/multimon-ng-1.1.9+dfsg/hdlc.c Examining data/multimon-ng-1.1.9+dfsg/mkcostab.c Examining data/multimon-ng-1.1.9+dfsg/msvc_support.h Examining data/multimon-ng-1.1.9+dfsg/multimon.h Examining data/multimon-ng-1.1.9+dfsg/pocsag.c Examining data/multimon-ng-1.1.9+dfsg/selcall.c Examining data/multimon-ng-1.1.9+dfsg/uart.c Examining data/multimon-ng-1.1.9+dfsg/unixinput.c Examining data/multimon-ng-1.1.9+dfsg/win32_getopt.c Examining data/multimon-ng-1.1.9+dfsg/win32_getopt.h Examining data/multimon-ng-1.1.9+dfsg/win32_soundin.c Examining data/multimon-ng-1.1.9+dfsg/xdisplay.c FINAL RESULTS: data/multimon-ng-1.1.9+dfsg/demod_flex.c:613:22: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. pt_offset += sprintf(pt_out + pt_offset, "|ALN|%s\n", message); data/multimon-ng-1.1.9+dfsg/gen.c:60:5: [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. int snprintf(char *buf, size_t sz, const char *fmt, ...) data/multimon-ng-1.1.9+dfsg/gen.c:66:6: [4] (format) vsprintf: Potential format string problem (CWE-134). Make format string constant. i = vsprintf(buf, fmt, arg); data/multimon-ng-1.1.9+dfsg/gen.c:337:4: [4] (shell) execlp: 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. execlp("sox", "sox", data/multimon-ng-1.1.9+dfsg/gen.c:537:9: [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. (void)fprintf(stderr, usage_str); data/multimon-ng-1.1.9+dfsg/unixinput.c:145:5: [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, fmt, args); data/multimon-ng-1.1.9+dfsg/unixinput.c:501:13: [4] (shell) execlp: 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. execlp("sox", "sox", repeatable_sox?"-R":"-V2", mute_sox?"-V1":"-V2", data/multimon-ng-1.1.9+dfsg/unixinput.c:815:15: [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. (void)fprintf(stderr, usage_str, argv[0]); data/multimon-ng-1.1.9+dfsg/xdisplay.c:97:11: [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. (void)fprintf(stderr, mesg, evt->request_code); data/multimon-ng-1.1.9+dfsg/gen.c:396:14: [3] (buffer) getopt: Some older implementations do not protect against internal buffer overflows (CWE-120, CWE-20). Check implementation on installation, or limit the size of all string inputs. while ((c = getopt(argc, argv, "t:a:d:s:z:p:u:c:h")) != EOF) { data/multimon-ng-1.1.9+dfsg/unixinput.c:624:17: [3] (buffer) getopt_long: Some older implementations do not protect against internal buffer overflows (CWE-120, CWE-20). Check implementation on installation, or limit the size of all string inputs. while ((c = getopt_long(argc, argv, "t:a:s:v:f:b:C:o:d:g:cqhAmrnjeuipxy", long_options, NULL)) != EOF) { data/multimon-ng-1.1.9+dfsg/win32_getopt.c:533:5: [3] (buffer) getopt: Some older implementations do not protect against internal buffer overflows (CWE-120, CWE-20). Check implementation on installation, or limit the size of all string inputs. int getopt (int argc, TCHAR *const *argv, const TCHAR *optstring) _GETOPT_THROW data/multimon-ng-1.1.9+dfsg/win32_getopt.c:538:5: [3] (buffer) getopt_long: Some older implementations do not protect against internal buffer overflows (CWE-120, CWE-20). Check implementation on installation, or limit the size of all string inputs. int getopt_long (int argc, TCHAR *const *argv, const TCHAR *options, const struct option *long_options, int *opt_index) _GETOPT_THROW data/multimon-ng-1.1.9+dfsg/win32_getopt.h:116:24: [3] (buffer) getopt: Some older implementations do not protect against internal buffer overflows (CWE-120, CWE-20). Check implementation on installation, or limit the size of all string inputs. extern _GETOPT_API int getopt(int argc, TCHAR *const *argv, const TCHAR *optstring) _GETOPT_THROW; data/multimon-ng-1.1.9+dfsg/win32_getopt.h:117:24: [3] (buffer) getopt_long: Some older implementations do not protect against internal buffer overflows (CWE-120, CWE-20). Check implementation on installation, or limit the size of all string inputs. extern _GETOPT_API int getopt_long(int ___argc, TCHAR *const *___argv, const TCHAR *__shortopts, const struct option *__longopts, int *__longind) _GETOPT_THROW; data/multimon-ng-1.1.9+dfsg/demod_display.c:75: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(dst, src, i*sizeof(s->l1.scope.data[0])); data/multimon-ng-1.1.9+dfsg/demod_flex.c:523: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 message[1024]; data/multimon-ng-1.1.9+dfsg/demod_flex.c:592: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 char pt_out[4096] = { 0 }; data/multimon-ng-1.1.9+dfsg/demod_flex.c:593:25: [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. int pt_offset = sprintf(pt_out, "FLEX|%04i-%02i-%02i %02i:%02i:%02i|%i/%i/%c/%c|%02i.%03i|%09lld", data/multimon-ng-1.1.9+dfsg/demod_flex.c:605:38: [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. pt_offset += sprintf(pt_out + pt_offset, " %09lld", flex->GroupHandler.GroupCodes[groupbit][g]); data/multimon-ng-1.1.9+dfsg/demod_flex.c:619: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 const char flex_bcd[17] = "0123456789 U -]["; data/multimon-ng-1.1.9+dfsg/demod_flex.c:683: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 const char flex_bcd[17] = "0123456789 U -]["; data/multimon-ng-1.1.9+dfsg/demod_morse.c:153: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 string[32 + 3]; //32 dit/dahs + 2 brackets and 0 data/multimon-ng-1.1.9+dfsg/fms.c:180:27: [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 void fms_print_crc(char crc[7]) { data/multimon-ng-1.1.9+dfsg/fms.c:206: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 crc[7]; data/multimon-ng-1.1.9+dfsg/gen.c:133: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). if ((fd = open(ifname ? ifname : "/dev/audio", O_WRONLY)) < 0) { data/multimon-ng-1.1.9+dfsg/gen.c:196: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 b[8192]; data/multimon-ng-1.1.9+dfsg/gen.c:203: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). if ((fd = open(ifname ? ifname : "/dev/dsp", O_WRONLY)) < 0) { data/multimon-ng-1.1.9+dfsg/gen.c:312: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). if ((fd = open(fname, O_WRONLY|O_CREAT|O_EXCL, 0777)) < 0) { data/multimon-ng-1.1.9+dfsg/gen.c:326:4: [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 srate[8]; data/multimon-ng-1.1.9+dfsg/gen.h:40:4: [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 str[256]; data/multimon-ng-1.1.9+dfsg/gen.h:49:4: [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 str[256]; data/multimon-ng-1.1.9+dfsg/gen.h:55:13: [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 pkt[256]; data/multimon-ng-1.1.9+dfsg/gen.h:61:13: [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 pkt[256]; data/multimon-ng-1.1.9+dfsg/gen.h:67:13: [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 pkt[256]; data/multimon-ng-1.1.9+dfsg/gen.h:92:13: [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[512]; data/multimon-ng-1.1.9+dfsg/gen.h:98:13: [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[512]; data/multimon-ng-1.1.9+dfsg/gen.h:105:13: [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[512]; data/multimon-ng-1.1.9+dfsg/mkcostab.c:40: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). if (!(fi = fopen("costabi.c", "w"))) data/multimon-ng-1.1.9+dfsg/mkcostab.c:42: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). if (!(ff = fopen("costabf.c", "w"))) data/multimon-ng-1.1.9+dfsg/multimon.h:71:14: [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 rxbuf[512]; data/multimon-ng-1.1.9+dfsg/multimon.h:79:14: [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 rxbuf[512]; data/multimon-ng-1.1.9+dfsg/multimon.h:92:22: [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 rxbuf[8192]; data/multimon-ng-1.1.9+dfsg/multimon.h:100:22: [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 rxbuf[512]; data/multimon-ng-1.1.9+dfsg/multimon.h:108:13: [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 last_message[269]; data/multimon-ng-1.1.9+dfsg/multimon.h:109:13: [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 msg_buf[4][269]; data/multimon-ng-1.1.9+dfsg/multimon.h:110:13: [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 head_buf[4]; data/multimon-ng-1.1.9+dfsg/multimon.h:124:22: [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[512]; data/multimon-ng-1.1.9+dfsg/multimon.h:252:13: [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[4]; data/multimon-ng-1.1.9+dfsg/multimon.h:254:13: [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 bstring[42]; data/multimon-ng-1.1.9+dfsg/pocsag.c:129: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 *trtab[128] = { data/multimon-ng-1.1.9+dfsg/pocsag.c:490:17: [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(cp, tstr, tlen); data/multimon-ng-1.1.9+dfsg/pocsag.c:544:17: [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(cp, tstr, tlen); data/multimon-ng-1.1.9+dfsg/pocsag.c:577:13: [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 num_string[1024]; data/multimon-ng-1.1.9+dfsg/pocsag.c:578:13: [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 alpha_string[1024]; data/multimon-ng-1.1.9+dfsg/pocsag.c:579:13: [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 skyper_string[1024]; data/multimon-ng-1.1.9+dfsg/pocsag.c:830:21: [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(in, xpose, sizeof(uint32_t)*32); data/multimon-ng-1.1.9+dfsg/pocsag.c:860: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(in, xpose, sizeof(uint32_t)*32); data/multimon-ng-1.1.9+dfsg/unixinput.c:119: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 time_buf[20]; data/multimon-ng-1.1.9+dfsg/unixinput.c:179:15: [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 ((fd = open(ifname ? ifname : "/dev/audio", O_RDONLY)) < 0) { data/multimon-ng-1.1.9+dfsg/unixinput.c:324: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 b[8192]; data/multimon-ng-1.1.9+dfsg/unixinput.c:333:15: [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 ((fd = open(ifname ? ifname : "/dev/dsp", O_RDONLY)) < 0) { data/multimon-ng-1.1.9+dfsg/unixinput.c:470: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 ((fd = open(fname, O_RDONLY | O_BINARY)) < 0) { data/multimon-ng-1.1.9+dfsg/unixinput.c:472: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 ((fd = open(fname, O_RDONLY)) < 0) { data/multimon-ng-1.1.9+dfsg/unixinput.c:490:13: [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 srate[8]; data/multimon-ng-1.1.9+dfsg/unixinput.c:495:13: [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(srate, "%d", sample_rate); data/multimon-ng-1.1.9+dfsg/win32_soundin.c:31: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(&fbuf[0],&fbuf[SAMPLES_PER_BUFFER],sizeof(float)*Overlap); data/multimon-ng-1.1.9+dfsg/xdisplay.c:49: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 b[0]; data/multimon-ng-1.1.9+dfsg/xdisplay.c:90: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_buf[256], mesg[256], number[256]; data/multimon-ng-1.1.9+dfsg/xdisplay.c:98:11: [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. (void)sprintf(number, "%d", evt->request_code); data/multimon-ng-1.1.9+dfsg/xdisplay.c:112: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 kbuf[32]; data/multimon-ng-1.1.9+dfsg/demod_eas.c:225:19: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(s->l2.eas.last_message, s->l2.eas.msg_buf[j], data/multimon-ng-1.1.9+dfsg/gen.c:444:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(params[num_gen-1].p.dtmf.str, optarg, sizeof(params[num_gen-1].p.dtmf.str)); data/multimon-ng-1.1.9+dfsg/gen.c:471:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(params[num_gen-1].p.zvei.str, optarg, sizeof(params[num_gen-1].p.dtmf.str)); data/multimon-ng-1.1.9+dfsg/gen.c:484:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(params[num_gen-1].p.uart.pkt, optarg, sizeof(params[num_gen-1].p.uart.pkt)); data/multimon-ng-1.1.9+dfsg/gen.c:485: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). params[num_gen-1].p.uart.pktlen = strlen(params[num_gen-1].p.uart.pkt); data/multimon-ng-1.1.9+dfsg/gen.c:498:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(params[num_gen-1].p.clipfsk.pkt, optarg, sizeof(params[num_gen-1].p.clipfsk.pkt)); data/multimon-ng-1.1.9+dfsg/gen.c:499:41: [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). params[num_gen-1].p.clipfsk.pktlen = strlen(params[num_gen-1].p.clipfsk.pkt); data/multimon-ng-1.1.9+dfsg/gen.c:529:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(params[num_gen-1].p.hdlc.pkt+16, optarg, data/multimon-ng-1.1.9+dfsg/gen.c:532:5: [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). strlen(params[num_gen-1].p.hdlc.pkt+16); data/multimon-ng-1.1.9+dfsg/pocsag.c:487:24: [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). int tlen = strlen(tstr); data/multimon-ng-1.1.9+dfsg/pocsag.c:542:24: [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). int tlen = strlen(tstr); data/multimon-ng-1.1.9+dfsg/unixinput.c:211:13: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). i = read(fd, sp = buffer, sizeof(buffer)); data/multimon-ng-1.1.9+dfsg/unixinput.c:409:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). i = read(fd, sp = b.s, sizeof(b.s)); data/multimon-ng-1.1.9+dfsg/unixinput.c:521:13: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). i = read(fd, sp = buffer, sizeof(buffer)); data/multimon-ng-1.1.9+dfsg/win32_getopt.c:241:66: [1] (buffer) _tcslen: 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 ((unsigned int)(nameend - d->__nextchar) == (unsigned int)_tcslen(p->name)) data/multimon-ng-1.1.9+dfsg/win32_getopt.c:264:22: [1] (buffer) _tcslen: 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). d->__nextchar += _tcslen(d->__nextchar); data/multimon-ng-1.1.9+dfsg/win32_getopt.c:293:24: [1] (buffer) _tcslen: 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). d->__nextchar += _tcslen(d->__nextchar); data/multimon-ng-1.1.9+dfsg/win32_getopt.c:309:24: [1] (buffer) _tcslen: 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). d->__nextchar += _tcslen(d->__nextchar); data/multimon-ng-1.1.9+dfsg/win32_getopt.c:314:22: [1] (buffer) _tcslen: 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). d->__nextchar += _tcslen(d->__nextchar); data/multimon-ng-1.1.9+dfsg/win32_getopt.c:401:54: [1] (buffer) _tcslen: 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 ((unsigned int) (nameend - d->__nextchar) == _tcslen(p->name)) data/multimon-ng-1.1.9+dfsg/win32_getopt.c:423:23: [1] (buffer) _tcslen: 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). d->__nextchar += _tcslen(d->__nextchar); data/multimon-ng-1.1.9+dfsg/win32_getopt.c:443:25: [1] (buffer) _tcslen: 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). d->__nextchar += _tcslen(d->__nextchar); data/multimon-ng-1.1.9+dfsg/win32_getopt.c:459:25: [1] (buffer) _tcslen: 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). d->__nextchar += _tcslen(d->__nextchar); data/multimon-ng-1.1.9+dfsg/win32_getopt.c:465:23: [1] (buffer) _tcslen: 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). d->__nextchar += _tcslen(d->__nextchar); data/multimon-ng-1.1.9+dfsg/xdisplay.c:271:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). i = read(datapipe[0], bp, j); data/multimon-ng-1.1.9+dfsg/xdisplay.c:407:6: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). i = read(cli[cnum].cmdfd, &c, 1); ANALYSIS SUMMARY: Hits = 97 Lines analyzed = 11834 in approximately 0.38 seconds (30982 lines/second) Physical Source Lines of Code (SLOC) = 8345 Hits@level = [0] 93 [1] 26 [2] 56 [3] 6 [4] 9 [5] 0 Hits@level+ = [0+] 190 [1+] 97 [2+] 71 [3+] 15 [4+] 9 [5+] 0 Hits/KSLOC@level+ = [0+] 22.7681 [1+] 11.6237 [2+] 8.50809 [3+] 1.79748 [4+] 1.07849 [5+] 0 Dot directories skipped = 2 (--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.