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/libjsoncpp-1.9.4/example/readFromStream/readFromStream.cpp
Examining data/libjsoncpp-1.9.4/example/readFromString/readFromString.cpp
Examining data/libjsoncpp-1.9.4/example/streamWrite/streamWrite.cpp
Examining data/libjsoncpp-1.9.4/example/stringWrite/stringWrite.cpp
Examining data/libjsoncpp-1.9.4/include/json/allocator.h
Examining data/libjsoncpp-1.9.4/include/json/assertions.h
Examining data/libjsoncpp-1.9.4/include/json/config.h
Examining data/libjsoncpp-1.9.4/include/json/forwards.h
Examining data/libjsoncpp-1.9.4/include/json/json.h
Examining data/libjsoncpp-1.9.4/include/json/json_features.h
Examining data/libjsoncpp-1.9.4/include/json/reader.h
Examining data/libjsoncpp-1.9.4/include/json/value.h
Examining data/libjsoncpp-1.9.4/include/json/version.h
Examining data/libjsoncpp-1.9.4/include/json/writer.h
Examining data/libjsoncpp-1.9.4/src/jsontestrunner/main.cpp
Examining data/libjsoncpp-1.9.4/src/lib_json/json_reader.cpp
Examining data/libjsoncpp-1.9.4/src/lib_json/json_tool.h
Examining data/libjsoncpp-1.9.4/src/lib_json/json_value.cpp
Examining data/libjsoncpp-1.9.4/src/lib_json/json_writer.cpp
Examining data/libjsoncpp-1.9.4/src/test_lib_json/fuzz.cpp
Examining data/libjsoncpp-1.9.4/src/test_lib_json/fuzz.h
Examining data/libjsoncpp-1.9.4/src/test_lib_json/jsontest.cpp
Examining data/libjsoncpp-1.9.4/src/test_lib_json/jsontest.h
Examining data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp

FINAL RESULTS:

data/libjsoncpp-1.9.4/include/json/config.h:65:31:  [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.
#define jsoncpp_snprintf std::snprintf
data/libjsoncpp-1.9.4/src/lib_json/json_reader.cpp:27:14:  [4] (buffer) sscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function.
#if !defined(sscanf)
data/libjsoncpp-1.9.4/src/lib_json/json_reader.cpp:28:9:  [4] (buffer) sscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function.
#define sscanf std::sscanf
data/libjsoncpp-1.9.4/src/lib_json/json_reader.cpp:28:21:  [4] (buffer) sscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function.
#define sscanf std::sscanf
data/libjsoncpp-1.9.4/example/readFromStream/readFromStream.cpp:19:7:  [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).
  ifs.open(argv[1]);
data/libjsoncpp-1.9.4/src/jsontestrunner/main.cpp:32: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 buffer[32];
data/libjsoncpp-1.9.4/src/jsontestrunner/main.cpp:56: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).
  FILE* file = fopen(path, "rb");
data/libjsoncpp-1.9.4/src/jsontestrunner/main.cpp:104: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.
      static char buffer[16];
data/libjsoncpp-1.9.4/src/jsontestrunner/main.cpp:166:21:  [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* factual = fopen(actual.c_str(), "wt");
data/libjsoncpp-1.9.4/src/jsontestrunner/main.cpp:201: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).
  FILE* fout = fopen(rewritePath.c_str(), "wt");
data/libjsoncpp-1.9.4/src/lib_json/json_reader.cpp:787: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 buffer[18 + 16 + 16 + 1];
data/libjsoncpp-1.9.4/src/lib_json/json_reader.cpp:1834: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 buffer[18 + 16 + 16 + 1];
data/libjsoncpp-1.9.4/src/lib_json/json_value.cpp:126: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(newString, value, length);
data/libjsoncpp-1.9.4/src/lib_json/json_value.cpp:148: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(newString + sizeof(unsigned), value, length);
data/libjsoncpp-1.9.4/include/json/value.h:567:32:  [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).
    setComment(String(comment, strlen(comment)), placement);
data/libjsoncpp-1.9.4/src/lib_json/json_value.cpp:156:37:  [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).
    *length = static_cast<unsigned>(strlen(prefixed));
data/libjsoncpp-1.9.4/src/lib_json/json_value.cpp:177:33:  [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).
  size_t size = (length == 0) ? strlen(value) : length;
data/libjsoncpp-1.9.4/src/lib_json/json_value.cpp:406:36:  [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).
      value, static_cast<unsigned>(strlen(value)));
data/libjsoncpp-1.9.4/src/lib_json/json_value.cpp:1043:49:  [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).
  CZString actualKey(key, static_cast<unsigned>(strlen(key)),
data/libjsoncpp-1.9.4/src/lib_json/json_value.cpp:1101:40:  [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).
  Value const* found = find(key, key + strlen(key));
data/libjsoncpp-1.9.4/src/lib_json/json_value.cpp:1114: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).
  return resolveReference(key, key + strlen(key));
data/libjsoncpp-1.9.4/src/lib_json/json_value.cpp:1160:25:  [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).
  return get(key, key + strlen(key), defaultValue);
data/libjsoncpp-1.9.4/src/lib_json/json_value.cpp:1181:34:  [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).
  return removeMember(key, key + strlen(key), removed);
data/libjsoncpp-1.9.4/src/lib_json/json_value.cpp:1192:36:  [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).
  CZString actualKey(key, unsigned(strlen(key)), CZString::noDuplication);
data/libjsoncpp-1.9.4/src/lib_json/json_value.cpp:1226:30:  [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).
  return isMember(key, key + strlen(key));
data/libjsoncpp-1.9.4/src/lib_json/json_writer.cpp:351:64:  [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).
  return valueToQuotedStringN(value, static_cast<unsigned int>(strlen(value)));
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:217:61:  [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).
  const Json::Value* foundId = object1_.find(idKey, idKey + strlen(idKey));
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:223:50:  [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).
      object1_.find(unknownIdKey, unknownIdKey + strlen(unknownIdKey));
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:229:56:  [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).
      object1_.find(yetAnotherIdKey, yetAnotherIdKey + strlen(yetAnotherIdKey));
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:232:42:  [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).
      yetAnotherIdKey, yetAnotherIdKey + strlen(yetAnotherIdKey));
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:2960:43:  [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).
  bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:2973:43:  [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).
  bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:2987:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3001:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3008:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3015:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3024:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3033:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3042:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3054:49:  [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).
    bool ok = charreader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3071:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3078:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3086:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3101:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3109:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3124:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3132:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3146:43:  [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).
  bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3159:43:  [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).
  bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3172:43:  [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).
  bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3187:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3197:39:  [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).
        reader->parse(doc, doc + std::strlen(doc), &root, &errs));
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3220:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3239:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3248:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3259:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3271:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3289:43:  [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).
  bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3304:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3317:43:  [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).
  bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3329:43:  [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).
  bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3343:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3350:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3359:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3439:43:  [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).
  bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3458:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3467:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3486:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3495:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3513:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3522:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3539:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3590:45:  [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).
    bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);
data/libjsoncpp-1.9.4/src/test_lib_json/main.cpp:3623:43:  [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).
  bool ok = reader->parse(doc, doc + std::strlen(doc), &root, &errs);

ANALYSIS SUMMARY:

Hits = 74
Lines analyzed = 12342 in approximately 0.37 seconds (33105 lines/second)
Physical Source Lines of Code (SLOC) = 9552
Hits@level = [0]  25 [1]  60 [2]  10 [3]   0 [4]   4 [5]   0
Hits@level+ = [0+]  99 [1+]  74 [2+]  14 [3+]   4 [4+]   4 [5+]   0
Hits/KSLOC@level+ = [0+] 10.3643 [1+] 7.74707 [2+] 1.46566 [3+] 0.41876 [4+] 0.41876 [5+]   0
Dot directories skipped = 3 (--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.