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.