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/libzmf-0.0.2/inc/libzmf/ZMFDocument.h
Examining data/libzmf-0.0.2/inc/libzmf/libzmf.h
Examining data/libzmf-0.0.2/src/lib/BMIHeader.h
Examining data/libzmf-0.0.2/src/lib/BMITypes.cpp
Examining data/libzmf-0.0.2/src/lib/ZMFCollector.h
Examining data/libzmf-0.0.2/src/lib/ZMF2Parser.cpp
Examining data/libzmf-0.0.2/src/lib/ZMFDocument.cpp
Examining data/libzmf-0.0.2/src/lib/ZMF2Header.h
Examining data/libzmf-0.0.2/src/lib/ZMFCollector.cpp
Examining data/libzmf-0.0.2/src/lib/BMIParser.h
Examining data/libzmf-0.0.2/src/lib/ZMF4Parser.h
Examining data/libzmf-0.0.2/src/lib/BMIParser.cpp
Examining data/libzmf-0.0.2/src/lib/ZMF4Parser.cpp
Examining data/libzmf-0.0.2/src/lib/ZMF2Parser.h
Examining data/libzmf-0.0.2/src/lib/ZBRParser.cpp
Examining data/libzmf-0.0.2/src/lib/libzmf_utils.cpp
Examining data/libzmf-0.0.2/src/lib/BMIHeader.cpp
Examining data/libzmf-0.0.2/src/lib/libzmf_utils.h
Examining data/libzmf-0.0.2/src/lib/ZMFTypes.h
Examining data/libzmf-0.0.2/src/lib/ZMF4Header.cpp
Examining data/libzmf-0.0.2/src/lib/ZMF4Header.h
Examining data/libzmf-0.0.2/src/lib/ZMF2Header.cpp
Examining data/libzmf-0.0.2/src/lib/ZMFTypes.cpp
Examining data/libzmf-0.0.2/src/lib/ZBRHeader.h
Examining data/libzmf-0.0.2/src/lib/BMITypes.h
Examining data/libzmf-0.0.2/src/lib/ZBRHeader.cpp
Examining data/libzmf-0.0.2/src/lib/ZBRParser.h
Examining data/libzmf-0.0.2/src/test/test.cpp
Examining data/libzmf-0.0.2/src/test/ZMFDocumentTest.cpp
Examining data/libzmf-0.0.2/src/test/ZMFTypesTest.cpp
Examining data/libzmf-0.0.2/src/fuzz/bmifuzzer.cpp
Examining data/libzmf-0.0.2/src/fuzz/zmffuzzer.cpp
Examining data/libzmf-0.0.2/src/conv/svg/zmf2svg.cpp
Examining data/libzmf-0.0.2/src/conv/raw/zmf2raw.cpp

FINAL RESULTS:

data/libzmf-0.0.2/src/lib/ZMFCollector.cpp:36:10:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
  border.sprintf("%fin", pen.width);
data/libzmf-0.0.2/src/lib/ZMFCollector.cpp:142:16:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
      sElement.sprintf("%c%lf %lf ", action[0], path[i]["svg:x"]->getDouble(), path[i]["svg:y"]->getDouble());
data/libzmf-0.0.2/src/lib/ZMFCollector.cpp:151:16:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
      sElement.sprintf("C%lf %lf %lf %lf %lf %lf ",
data/libzmf-0.0.2/src/lib/ZMFCollector.cpp:195:12:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
  propName.sprintf("draw:marker-%s-viewbox", name);
data/libzmf-0.0.2/src/lib/ZMFCollector.cpp:197:12:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
  propName.sprintf("draw:marker-%s-path", name);
data/libzmf-0.0.2/src/lib/ZMFCollector.cpp:199:12:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
  propName.sprintf("draw:marker-%s-width", name);
data/libzmf-0.0.2/src/lib/ZMFCollector.cpp:201:12:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
  propName.sprintf("draw:marker-%s-center", name);
data/libzmf-0.0.2/src/lib/ZMFTypes.cpp:180:12:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
  colorStr.sprintf("#%.2x%.2x%.2x", red, green, blue);
data/libzmf-0.0.2/src/lib/libzmf_utils.cpp:282:8:  [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.
  std::vfprintf(stderr, format, args);
data/libzmf-0.0.2/src/lib/libzmf_utils.cpp:74: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 outbuf[7] = { 0 };
data/libzmf-0.0.2/src/lib/libzmf_utils.cpp:94:29:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  uint8_t const *p = input->read(sizeof(uint8_t), numBytesRead);
data/libzmf-0.0.2/src/lib/libzmf_utils.cpp:106:29:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  uint8_t const *p = input->read(sizeof(uint16_t), numBytesRead);
data/libzmf-0.0.2/src/lib/libzmf_utils.cpp:122:29:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  uint8_t const *p = input->read(sizeof(uint32_t), numBytesRead);
data/libzmf-0.0.2/src/lib/libzmf_utils.cpp:138:29:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  uint8_t const *p = input->read(sizeof(uint64_t), numBytesRead);
data/libzmf-0.0.2/src/lib/libzmf_utils.cpp:167:41:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  const unsigned char *const s = input->read(numBytes, readBytes);

ANALYSIS SUMMARY:

Hits = 15
Lines analyzed = 5878 in approximately 0.22 seconds (26143 lines/second)
Physical Source Lines of Code (SLOC) = 4288
Hits@level = [0]  16 [1]   5 [2]   1 [3]   0 [4]   9 [5]   0
Hits@level+ = [0+]  31 [1+]  15 [2+]  10 [3+]   9 [4+]   9 [5+]   0
Hits/KSLOC@level+ = [0+] 7.22948 [1+] 3.49813 [2+] 2.33209 [3+] 2.09888 [4+] 2.09888 [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.