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/pd-ext13-0.17.1/kalashnikov.c Examining data/pd-ext13-0.17.1/streamout13~.c Examining data/pd-ext13-0.17.1/scramble~.c Examining data/pd-ext13-0.17.1/d_global13.h Examining data/pd-ext13-0.17.1/throw13~.c Examining data/pd-ext13-0.17.1/send13.c Examining data/pd-ext13-0.17.1/receive13~.c Examining data/pd-ext13-0.17.1/ftos.c Examining data/pd-ext13-0.17.1/receive13.c Examining data/pd-ext13-0.17.1/mandelbrot.c Examining data/pd-ext13-0.17.1/piperead~.c Examining data/pd-ext13-0.17.1/catch13~.c Examining data/pd-ext13-0.17.1/send13~.c Examining data/pd-ext13-0.17.1/messages.c Examining data/pd-ext13-0.17.1/promiscous~.c Examining data/pd-ext13-0.17.1/sfwrite13~.c Examining data/pd-ext13-0.17.1/ossmixer.c Examining data/pd-ext13-0.17.1/ext13.c Examining data/pd-ext13-0.17.1/mandelbrot~.c Examining data/pd-ext13-0.17.1/wavinfo.c Examining data/pd-ext13-0.17.1/filesize.c Examining data/pd-ext13-0.17.1/pipewrite~.c Examining data/pd-ext13-0.17.1/stream13.h Examining data/pd-ext13-0.17.1/ext13.h Examining data/pd-ext13-0.17.1/streamin13~.c Examining data/pd-ext13-0.17.1/openpatch.c Examining data/pd-ext13-0.17.1/strippath.c Examining data/pd-ext13-0.17.1/cdplayer.c FINAL RESULTS: data/pd-ext13-0.17.1/cdplayer.c:32:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(devicename, "%s", "/dev/cdrom"); data/pd-ext13-0.17.1/ftos.c:52:5: [4] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). strcat(fmt,num); data/pd-ext13-0.17.1/ftos.c:55:5: [4] (format) sprintf: Potential format string problem (CWE-134). Make format string constant. sprintf(result,x->x_fmt->s_name,(float)f); data/pd-ext13-0.17.1/openpatch.c:53:9: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy (filename,lastslash+1); data/pd-ext13-0.17.1/openpatch.c:57:9: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy (filename,s->s_name); data/pd-ext13-0.17.1/openpatch.c:58:9: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf (path, "%s", x->x_path->s_name); data/pd-ext13-0.17.1/strippath.c:47:9: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy (filename,lastslash+1); data/pd-ext13-0.17.1/strippath.c:51:9: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy (filename,s->s_name); data/pd-ext13-0.17.1/strippath.c:52:9: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf (path, "%s", x->x_path->s_name); data/pd-ext13-0.17.1/cdplayer.c:57: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). cdrom = open(x->device->s_name,O_RDONLY); // Open device data/pd-ext13-0.17.1/cdplayer.c:92: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). cdrom = open(x->device->s_name,O_RDONLY); data/pd-ext13-0.17.1/cdplayer.c:112: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). cdrom = open(x->device->s_name,O_RDONLY); data/pd-ext13-0.17.1/cdplayer.c:132: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). cdrom = open(x->device->s_name,O_RDONLY); data/pd-ext13-0.17.1/cdplayer.c:152: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). cdrom = open(x->device->s_name,O_RDONLY); data/pd-ext13-0.17.1/ftos.c:46: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 result[MAXPDSTRING]; data/pd-ext13-0.17.1/ftos.c:47: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 fmt[MAXPDSTRING]; data/pd-ext13-0.17.1/ftos.c:48: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 num[MAXPDSTRING]; data/pd-ext13-0.17.1/ftos.c:50: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(num,"%d",(int)x->x_f); data/pd-ext13-0.17.1/ftos.c:51: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(fmt,"%."); data/pd-ext13-0.17.1/openpatch.c:47:7: [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 path[MAXPDSTRING], filename[MAXPDSTRING]; data/pd-ext13-0.17.1/ossmixer.c:37: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 devicename[FILENAME_MAX]; data/pd-ext13-0.17.1/ossmixer.c:42: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(devicename,"/dev/mixer%d",(int)f); data/pd-ext13-0.17.1/ossmixer.c:45:10: [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). fd = open(x->device->s_name, O_WRONLY); data/pd-ext13-0.17.1/ossmixer.c:59: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 devicename[FILENAME_MAX]; data/pd-ext13-0.17.1/ossmixer.c:61:4: [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(devicename,"/dev/mixer%d",(int)f); data/pd-ext13-0.17.1/ossmixer.c:63:9: [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). fd = open(x->device->s_name, O_WRONLY); data/pd-ext13-0.17.1/ossmixer.c:136:10: [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). fd = open(x->device->s_name, O_RDONLY); data/pd-ext13-0.17.1/ossmixer.c:208:10: [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). fd = open(x->device->s_name, O_WRONLY); data/pd-ext13-0.17.1/ossmixer.c:229:10: [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). fd = open(x->device->s_name, O_WRONLY); data/pd-ext13-0.17.1/ossmixer.c:298:10: [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). fd = open(x->device->s_name, O_WRONLY); data/pd-ext13-0.17.1/piperead~.c:44:6: [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[MAXPDSTRING]; data/pd-ext13-0.17.1/piperead~.c:51:21: [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 ((x->x_fd = open(fname,( O_NONBLOCK | O_RDONLY))) < 0) data/pd-ext13-0.17.1/pipewrite~.c:26: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 w_fileid[4]; /* chunk id 'RIFF' */ data/pd-ext13-0.17.1/pipewrite~.c:28: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 w_waveid[4]; /* wave chunk id 'WAVE' */ data/pd-ext13-0.17.1/pipewrite~.c:29: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 w_fmtid[4]; /* format chunk id 'fmt ' */ data/pd-ext13-0.17.1/pipewrite~.c:37: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 w_datachunkid[4]; /* data chunk id 'data' */ data/pd-ext13-0.17.1/pipewrite~.c:95:6: [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[MAXPDSTRING]; data/pd-ext13-0.17.1/pipewrite~.c:116:23: [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 ((x->x_file = open(fname,O_WRONLY | O_CREAT | O_NONBLOCK ,0664)) < 0) data/pd-ext13-0.17.1/sfwrite13~.c:62:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char w_fileid[4]; /* chunk id 'RIFF' */ data/pd-ext13-0.17.1/sfwrite13~.c:64: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 w_waveid[4]; /* wave chunk id 'WAVE' */ data/pd-ext13-0.17.1/sfwrite13~.c:65: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 w_fmtid[4]; /* format chunk id 'fmt ' */ data/pd-ext13-0.17.1/sfwrite13~.c:73: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 w_datachunkid[4]; /* data chunk id 'data' */ data/pd-ext13-0.17.1/sfwrite13~.c:151:6: [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[MAXPDSTRING]; data/pd-ext13-0.17.1/sfwrite13~.c:167:23: [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 ((x->x_file = open(fname,OPENPARAMS,0664)) < 0) data/pd-ext13-0.17.1/streamout13~.c:115:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy((char *)&server.sin_addr, (char *)hp->h_addr, hp->h_length); data/pd-ext13-0.17.1/streamout13~.c:162: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. char* buf = (char *)(w[2]); data/pd-ext13-0.17.1/strippath.c:41:7: [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 path[MAXPDSTRING], filename[MAXPDSTRING]; data/pd-ext13-0.17.1/wavinfo.c:25: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 w_fileid[4]; /* chunk id 'RIFF' */ data/pd-ext13-0.17.1/wavinfo.c:27: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 w_waveid[4]; /* wave chunk id 'WAVE' */ data/pd-ext13-0.17.1/wavinfo.c:28: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 w_fmtid[4]; /* format chunk id 'fmt ' */ data/pd-ext13-0.17.1/wavinfo.c:36: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 w_datachunkid[4]; /* data chunk id 'data' */ data/pd-ext13-0.17.1/wavinfo.c:84: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 fname[MAXPDSTRING]; data/pd-ext13-0.17.1/wavinfo.c:88:23: [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 ((x->x_fd = open(fname,( O_NONBLOCK | O_RDONLY))) < 0) data/pd-ext13-0.17.1/ftos.c:53:5: [1] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). Risk is low because the source is a constant character. strcat(fmt,"f"); data/pd-ext13-0.17.1/openpatch.c:51:9: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy (path,s->s_name,lastslash-s->s_name+1); data/pd-ext13-0.17.1/piperead~.c:58:7: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). read (x->x_fd,&x->buf[x->writepointer],2); data/pd-ext13-0.17.1/piperead~.c:91:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). erg = read (x->x_fd,&x->buf[x->writepointer],2); data/pd-ext13-0.17.1/pipewrite~.c:61:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant string. strncpy(w->w_fileid,"RIFF",4); /* chunk id 'RIFF' */ data/pd-ext13-0.17.1/pipewrite~.c:63:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant string. strncpy(w->w_waveid,"WAVE",4); /* wave chunk id 'WAVE' */ data/pd-ext13-0.17.1/pipewrite~.c:64:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant string. strncpy(w->w_fmtid,"fmt ",4); /* format chunk id 'fmt '*/ data/pd-ext13-0.17.1/pipewrite~.c:72:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant string. strncpy(w->w_datachunkid,"data",4); /* data chunk id 'data' */ data/pd-ext13-0.17.1/promiscous~.c:56:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(f.ifr_name, nic_name, sizeof(f.ifr_name)); data/pd-ext13-0.17.1/sfwrite13~.c:93:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant string. strncpy(w->w_fileid,"RIFF",4); /* chunk id 'RIFF' */ data/pd-ext13-0.17.1/sfwrite13~.c:95:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant string. strncpy(w->w_waveid,"WAVE",4); /* wave chunk id 'WAVE' */ data/pd-ext13-0.17.1/sfwrite13~.c:96:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant string. strncpy(w->w_fmtid,"fmt ",4); /* format chunk id 'fmt '*/ data/pd-ext13-0.17.1/sfwrite13~.c:104:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant string. strncpy(w->w_datachunkid,"data",4); /* data chunk id 'data'*/ data/pd-ext13-0.17.1/strippath.c:45:9: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy (path,s->s_name,lastslash-s->s_name+1); data/pd-ext13-0.17.1/wavinfo.c:96:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). result=read (x->x_fd,wavinfo,sizeof(t_wave)); ANALYSIS SUMMARY: Hits = 68 Lines analyzed = 4179 in approximately 0.12 seconds (35602 lines/second) Physical Source Lines of Code (SLOC) = 3367 Hits@level = [0] 2 [1] 15 [2] 44 [3] 0 [4] 9 [5] 0 Hits@level+ = [0+] 70 [1+] 68 [2+] 53 [3+] 9 [4+] 9 [5+] 0 Hits/KSLOC@level+ = [0+] 20.79 [1+] 20.196 [2+] 15.741 [3+] 2.673 [4+] 2.673 [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.