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/multitee-3.0/config/fdsettrouble.h
Examining data/multitee-3.0/fmt.h
Examining data/multitee-3.0/getopt.c
Examining data/multitee-3.0/getopt.h
Examining data/multitee-3.0/ralloc.h
Examining data/multitee-3.0/scan.h
Examining data/multitee-3.0/sigdfl.h
Examining data/multitee-3.0/sigsched.h
Examining data/multitee-3.0/sod.h
Examining data/multitee-3.0/tee.c
Examining data/multitee-3.0/fmt.c
Examining data/multitee-3.0/multitee.c
Examining data/multitee-3.0/ralloc.c
Examining data/multitee-3.0/sigdfl.c
Examining data/multitee-3.0/sigsched.c
Examining data/multitee-3.0/scan.c

FINAL RESULTS:

data/multitee-3.0/tee.c:115:2:  [4] (shell) execvp:
  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.
 execvp(argv[0],argv);
data/multitee-3.0/getopt.c:43: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(argc,argv,opts)
data/multitee-3.0/getopt.h:5:9:  [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.
#define getopt getoptmine
data/multitee-3.0/getopt.h:15:12:  [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 int getopt();
data/multitee-3.0/multitee.c:310:16:  [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 ((opt = getopt(argc,argv,"b:vqQ")) != opteof)
data/multitee-3.0/tee.c:43:16:  [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 ((opt = getopt(argc,argv,"ai")) != opteof)
data/multitee-3.0/multitee.c:69: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 mwre[100 + FMT_ULONG]; char *t;
data/multitee-3.0/multitee.c:81: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 mwwe[100 + FMT_ULONG]; char *t;
data/multitee-3.0/tee.c:39: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 problem[1024];
data/multitee-3.0/tee.c:66: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(*argv,O_WRONLY | O_CREAT | (flagappend ? O_APPEND : O_TRUNC),0666);
data/multitee-3.0/multitee.c:144:8:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
   r = read(fd,fdbuf[fd] + endpos,bufsize - endpos);

ANALYSIS SUMMARY:

Hits = 11
Lines analyzed = 2165 in approximately 0.06 seconds (34967 lines/second)
Physical Source Lines of Code (SLOC) = 1687
Hits@level = [0]   5 [1]   1 [2]   4 [3]   5 [4]   1 [5]   0
Hits@level+ = [0+]  16 [1+]  11 [2+]  10 [3+]   6 [4+]   1 [5+]   0
Hits/KSLOC@level+ = [0+] 9.48429 [1+] 6.52045 [2+] 5.92768 [3+] 3.55661 [4+] 0.592768 [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.