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/libsass-3.6.4/contrib/plugin.cpp
Examining data/libsass-3.6.4/include/sass.h
Examining data/libsass-3.6.4/include/sass/base.h
Examining data/libsass-3.6.4/include/sass/context.h
Examining data/libsass-3.6.4/include/sass/functions.h
Examining data/libsass-3.6.4/include/sass/values.h
Examining data/libsass-3.6.4/include/sass/version.h
Examining data/libsass-3.6.4/include/sass2scss.h
Examining data/libsass-3.6.4/src/MurmurHash2.hpp
Examining data/libsass-3.6.4/src/ast.cpp
Examining data/libsass-3.6.4/src/ast.hpp
Examining data/libsass-3.6.4/src/ast2c.cpp
Examining data/libsass-3.6.4/src/ast2c.hpp
Examining data/libsass-3.6.4/src/ast_def_macros.hpp
Examining data/libsass-3.6.4/src/ast_fwd_decl.cpp
Examining data/libsass-3.6.4/src/ast_fwd_decl.hpp
Examining data/libsass-3.6.4/src/ast_helpers.hpp
Examining data/libsass-3.6.4/src/ast_sel_cmp.cpp
Examining data/libsass-3.6.4/src/ast_sel_super.cpp
Examining data/libsass-3.6.4/src/ast_sel_unify.cpp
Examining data/libsass-3.6.4/src/ast_sel_weave.cpp
Examining data/libsass-3.6.4/src/ast_selectors.cpp
Examining data/libsass-3.6.4/src/ast_selectors.hpp
Examining data/libsass-3.6.4/src/ast_supports.cpp
Examining data/libsass-3.6.4/src/ast_supports.hpp
Examining data/libsass-3.6.4/src/ast_values.cpp
Examining data/libsass-3.6.4/src/ast_values.hpp
Examining data/libsass-3.6.4/src/b64/cencode.h
Examining data/libsass-3.6.4/src/b64/encode.h
Examining data/libsass-3.6.4/src/backtrace.cpp
Examining data/libsass-3.6.4/src/backtrace.hpp
Examining data/libsass-3.6.4/src/base64vlq.cpp
Examining data/libsass-3.6.4/src/base64vlq.hpp
Examining data/libsass-3.6.4/src/bind.cpp
Examining data/libsass-3.6.4/src/bind.hpp
Examining data/libsass-3.6.4/src/c2ast.cpp
Examining data/libsass-3.6.4/src/c2ast.hpp
Examining data/libsass-3.6.4/src/c99func.c
Examining data/libsass-3.6.4/src/cencode.c
Examining data/libsass-3.6.4/src/check_nesting.cpp
Examining data/libsass-3.6.4/src/check_nesting.hpp
Examining data/libsass-3.6.4/src/color_maps.cpp
Examining data/libsass-3.6.4/src/color_maps.hpp
Examining data/libsass-3.6.4/src/constants.cpp
Examining data/libsass-3.6.4/src/constants.hpp
Examining data/libsass-3.6.4/src/context.cpp
Examining data/libsass-3.6.4/src/context.hpp
Examining data/libsass-3.6.4/src/cssize.cpp
Examining data/libsass-3.6.4/src/cssize.hpp
Examining data/libsass-3.6.4/src/dart_helpers.hpp
Examining data/libsass-3.6.4/src/debug.hpp
Examining data/libsass-3.6.4/src/debugger.hpp
Examining data/libsass-3.6.4/src/emitter.cpp
Examining data/libsass-3.6.4/src/emitter.hpp
Examining data/libsass-3.6.4/src/environment.cpp
Examining data/libsass-3.6.4/src/environment.hpp
Examining data/libsass-3.6.4/src/error_handling.cpp
Examining data/libsass-3.6.4/src/error_handling.hpp
Examining data/libsass-3.6.4/src/eval.cpp
Examining data/libsass-3.6.4/src/eval.hpp
Examining data/libsass-3.6.4/src/eval_selectors.cpp
Examining data/libsass-3.6.4/src/expand.cpp
Examining data/libsass-3.6.4/src/expand.hpp
Examining data/libsass-3.6.4/src/extender.cpp
Examining data/libsass-3.6.4/src/extender.hpp
Examining data/libsass-3.6.4/src/extension.cpp
Examining data/libsass-3.6.4/src/extension.hpp
Examining data/libsass-3.6.4/src/file.cpp
Examining data/libsass-3.6.4/src/file.hpp
Examining data/libsass-3.6.4/src/fn_colors.cpp
Examining data/libsass-3.6.4/src/fn_colors.hpp
Examining data/libsass-3.6.4/src/fn_lists.cpp
Examining data/libsass-3.6.4/src/fn_lists.hpp
Examining data/libsass-3.6.4/src/fn_maps.cpp
Examining data/libsass-3.6.4/src/fn_maps.hpp
Examining data/libsass-3.6.4/src/fn_miscs.cpp
Examining data/libsass-3.6.4/src/fn_miscs.hpp
Examining data/libsass-3.6.4/src/fn_numbers.cpp
Examining data/libsass-3.6.4/src/fn_numbers.hpp
Examining data/libsass-3.6.4/src/fn_selectors.cpp
Examining data/libsass-3.6.4/src/fn_selectors.hpp
Examining data/libsass-3.6.4/src/fn_strings.cpp
Examining data/libsass-3.6.4/src/fn_strings.hpp
Examining data/libsass-3.6.4/src/fn_utils.cpp
Examining data/libsass-3.6.4/src/fn_utils.hpp
Examining data/libsass-3.6.4/src/inspect.cpp
Examining data/libsass-3.6.4/src/inspect.hpp
Examining data/libsass-3.6.4/src/json.cpp
Examining data/libsass-3.6.4/src/json.hpp
Examining data/libsass-3.6.4/src/kwd_arg_macros.hpp
Examining data/libsass-3.6.4/src/lexer.cpp
Examining data/libsass-3.6.4/src/lexer.hpp
Examining data/libsass-3.6.4/src/listize.cpp
Examining data/libsass-3.6.4/src/listize.hpp
Examining data/libsass-3.6.4/src/mapping.hpp
Examining data/libsass-3.6.4/src/memory.hpp
Examining data/libsass-3.6.4/src/memory/allocator.cpp
Examining data/libsass-3.6.4/src/memory/allocator.hpp
Examining data/libsass-3.6.4/src/memory/config.hpp
Examining data/libsass-3.6.4/src/memory/memory_pool.hpp
Examining data/libsass-3.6.4/src/memory/shared_ptr.cpp
Examining data/libsass-3.6.4/src/memory/shared_ptr.hpp
Examining data/libsass-3.6.4/src/operation.hpp
Examining data/libsass-3.6.4/src/operators.cpp
Examining data/libsass-3.6.4/src/operators.hpp
Examining data/libsass-3.6.4/src/ordered_map.hpp
Examining data/libsass-3.6.4/src/output.cpp
Examining data/libsass-3.6.4/src/output.hpp
Examining data/libsass-3.6.4/src/parser.cpp
Examining data/libsass-3.6.4/src/parser.hpp
Examining data/libsass-3.6.4/src/parser_selectors.cpp
Examining data/libsass-3.6.4/src/permutate.hpp
Examining data/libsass-3.6.4/src/plugins.cpp
Examining data/libsass-3.6.4/src/plugins.hpp
Examining data/libsass-3.6.4/src/position.cpp
Examining data/libsass-3.6.4/src/position.hpp
Examining data/libsass-3.6.4/src/prelexer.cpp
Examining data/libsass-3.6.4/src/prelexer.hpp
Examining data/libsass-3.6.4/src/remove_placeholders.cpp
Examining data/libsass-3.6.4/src/remove_placeholders.hpp
Examining data/libsass-3.6.4/src/sass.cpp
Examining data/libsass-3.6.4/src/sass.hpp
Examining data/libsass-3.6.4/src/sass2scss.cpp
Examining data/libsass-3.6.4/src/sass_context.cpp
Examining data/libsass-3.6.4/src/sass_context.hpp
Examining data/libsass-3.6.4/src/sass_functions.cpp
Examining data/libsass-3.6.4/src/sass_functions.hpp
Examining data/libsass-3.6.4/src/sass_values.cpp
Examining data/libsass-3.6.4/src/sass_values.hpp
Examining data/libsass-3.6.4/src/settings.hpp
Examining data/libsass-3.6.4/src/source.cpp
Examining data/libsass-3.6.4/src/source.hpp
Examining data/libsass-3.6.4/src/source_data.hpp
Examining data/libsass-3.6.4/src/source_map.cpp
Examining data/libsass-3.6.4/src/source_map.hpp
Examining data/libsass-3.6.4/src/stylesheet.cpp
Examining data/libsass-3.6.4/src/stylesheet.hpp
Examining data/libsass-3.6.4/src/to_value.cpp
Examining data/libsass-3.6.4/src/to_value.hpp
Examining data/libsass-3.6.4/src/units.cpp
Examining data/libsass-3.6.4/src/units.hpp
Examining data/libsass-3.6.4/src/utf8.h
Examining data/libsass-3.6.4/src/utf8/checked.h
Examining data/libsass-3.6.4/src/utf8/core.h
Examining data/libsass-3.6.4/src/utf8/unchecked.h
Examining data/libsass-3.6.4/src/utf8_string.cpp
Examining data/libsass-3.6.4/src/utf8_string.hpp
Examining data/libsass-3.6.4/src/util.cpp
Examining data/libsass-3.6.4/src/util.hpp
Examining data/libsass-3.6.4/src/util_string.cpp
Examining data/libsass-3.6.4/src/util_string.hpp
Examining data/libsass-3.6.4/src/values.cpp
Examining data/libsass-3.6.4/src/values.hpp
Examining data/libsass-3.6.4/test/test_shared_ptr.cpp
Examining data/libsass-3.6.4/test/test_util_string.cpp

FINAL RESULTS:

data/libsass-3.6.4/src/c2ast.cpp:14:16:  [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).
    using std::strcpy;
data/libsass-3.6.4/src/c99func.c:42:5:  [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.
int snprintf(char* str, size_t size, const char* format, ...)
data/libsass-3.6.4/src/json.cpp:43:8:  [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.
#ifdef snprintf
data/libsass-3.6.4/src/json.cpp:44:8:  [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.
#undef snprintf
data/libsass-3.6.4/src/json.cpp:46:16:  [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.
extern "C" int snprintf(char *, size_t, const char *, ...);
data/libsass-3.6.4/src/json.cpp:60:3:  [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(ret, str);
data/libsass-3.6.4/src/json.cpp:1372:9:  [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.
        snprintf(errmsg, 256, __VA_ARGS__); \
data/libsass-3.6.4/src/sass2scss.cpp:871:3:  [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 (cstr, scss.c_str());
data/libsass-3.6.4/src/context.cpp:800:40:  [3] (random) random:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
    register_function(ctx, random_sig, random, env);
data/libsass-3.6.4/src/fn_numbers.cpp:148:14:  [3] (random) random:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
    BUILT_IN(random)
data/libsass-3.6.4/src/fn_numbers.hpp:35:14:  [3] (random) random:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
    BUILT_IN(random);
data/libsass-3.6.4/src/parser.cpp:536:87:  [3] (misc) chroot:
  chroot can be very helpful, but is hard to use correctly (CWE-250, CWE-22).
  Make sure the program immediately chdir("/"), closes file descriptors, and
  drops root privileges, and that all necessary files (and no more!) are in
  the new root.
  Selector_Schema_Obj Parser::parse_selector_schema(const char* end_of_selector, bool chroot)
data/libsass-3.6.4/src/parser.hpp:253:44:  [3] (misc) chroot:
  chroot can be very helpful, but is hard to use correctly (CWE-250, CWE-22).
  Make sure the program immediately chdir("/"), closes file descriptors, and
  drops root privileges, and that all necessary files (and no more!) are in
  the new root.
    SelectorListObj parseSelectorList(bool chroot);
data/libsass-3.6.4/src/parser.hpp:254:50:  [3] (misc) chroot:
  chroot can be very helpful, but is hard to use correctly (CWE-250, CWE-22).
  Make sure the program immediately chdir("/"), closes file descriptors, and
  drops root privileges, and that all necessary files (and no more!) are in
  the new root.
    ComplexSelectorObj parseComplexSelector(bool chroot);
data/libsass-3.6.4/src/parser.hpp:255:81:  [3] (misc) chroot:
  chroot can be very helpful, but is hard to use correctly (CWE-250, CWE-22).
  Make sure the program immediately chdir("/"), closes file descriptors, and
  drops root privileges, and that all necessary files (and no more!) are in
  the new root.
    Selector_Schema_Obj parse_selector_schema(const char* end_of_selector, bool chroot);
data/libsass-3.6.4/src/parser_selectors.cpp:12:56:  [3] (misc) chroot:
  chroot can be very helpful, but is hard to use correctly (CWE-250, CWE-22).
  Make sure the program immediately chdir("/"), closes file descriptors, and
  drops root privileges, and that all necessary files (and no more!) are in
  the new root.
  ComplexSelectorObj Parser::parseComplexSelector(bool chroot)
data/libsass-3.6.4/src/parser_selectors.cpp:53:48:  [3] (misc) chroot:
  chroot can be very helpful, but is hard to use correctly (CWE-250, CWE-22).
  Make sure the program immediately chdir("/"), closes file descriptors, and
  drops root privileges, and that all necessary files (and no more!) are in
  the new root.
    sel->chroots(sel->has_real_parent_ref() || chroot);
data/libsass-3.6.4/src/parser_selectors.cpp:61:50:  [3] (misc) chroot:
  chroot can be very helpful, but is hard to use correctly (CWE-250, CWE-22).
  Make sure the program immediately chdir("/"), closes file descriptors, and
  drops root privileges, and that all necessary files (and no more!) are in
  the new root.
  SelectorListObj Parser::parseSelectorList(bool chroot)
data/libsass-3.6.4/src/parser_selectors.cpp:82:57:  [3] (misc) chroot:
  chroot can be very helpful, but is hard to use correctly (CWE-250, CWE-22).
  Make sure the program immediately chdir("/"), closes file descriptors, and
  drops root privileges, and that all necessary files (and no more!) are in
  the new root.
      ComplexSelectorObj complex = parseComplexSelector(chroot);
data/libsass-3.6.4/src/sass2scss.cpp:826:10:  [3] (random) setstate:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
						is.setstate(std::ios::eofbit);
data/libsass-3.6.4/src/file.cpp:61: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.
        char wd[wd_len];
data/libsass-3.6.4/src/file.cpp:68:9:  [2] (buffer) wchar_t:
  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.
        wchar_t wd[wd_len];
data/libsass-3.6.4/src/file.cpp:83:9:  [2] (buffer) wchar_t:
  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.
        wchar_t resolved[32768];
data/libsass-3.6.4/src/file.cpp:448:9:  [2] (buffer) wchar_t:
  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.
        wchar_t resolved[32768];
data/libsass-3.6.4/src/file.cpp:480:25:  [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* fd = std::fopen(path.c_str(), "rb");
data/libsass-3.6.4/src/json.cpp:107: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(sb->cur, bytes, count);
data/libsass-3.6.4/src/json.cpp:837: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 throwaway_buffer[4];
data/libsass-3.6.4/src/json.cpp:1227:13:  [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(b, "\\uFFFD");
data/libsass-3.6.4/src/json.cpp:1288: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 buf[64];
data/libsass-3.6.4/src/json.cpp:1289:3:  [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(buf, "%.16g", num);
data/libsass-3.6.4/src/json.cpp:1368:39:  [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.
bool json_check(const JsonNode *node, char errmsg[256])
data/libsass-3.6.4/src/json.hpp:115:39:  [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.
bool json_check(const JsonNode *node, char errmsg[256]);
data/libsass-3.6.4/src/parser.hpp:348:34:  [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).
    template <Prelexer::prelexer open, Prelexer::prelexer close>
data/libsass-3.6.4/src/parser.hpp:351:17:  [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 (lex < open >(false)) {
data/libsass-3.6.4/src/sass.cpp:52:10:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
    std::memcpy(cpy, str, len);
data/libsass-3.6.4/src/sass2scss.cpp:732:38:  [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 (IS_CSS_COMMENT(converter) && open != "")
data/libsass-3.6.4/src/sass2scss.cpp:744:25:  [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).
				converter.comment = open;
data/libsass-3.6.4/src/util.cpp:312:20:  [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.
          unsigned char u[5] = {0,0,0,0,0}; utf8::append(cp, u);
data/libsass-3.6.4/src/util.cpp:401:20:  [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.
          unsigned char u[5] = {0,0,0,0,0}; utf8::append(cp, u);
data/libsass-3.6.4/src/b64/encode.h:58:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				istream_in.read(plaintext, N);
data/libsass-3.6.4/src/c2ast.cpp:13:16:  [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).
    using std::strlen;
data/libsass-3.6.4/src/json.cpp:57: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).
  char *ret = (char*) malloc(strlen(str) + 1);
data/libsass-3.6.4/src/json.cpp:119:24:  [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).
  sb_put(sb, str, (int)strlen(str));
data/libsass-3.6.4/src/json.cpp:125: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).
  assert(sb->start <= sb->cur && strlen(sb->start) == (size_t)(sb->cur - sb->start));
data/libsass-3.6.4/src/position.cpp:19: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).
    *this = inc(string, string + strlen(string));
data/libsass-3.6.4/src/position.cpp:36:14:  [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).
      end += strlen(beg);
data/libsass-3.6.4/src/position.hpp:84: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).
    : prefix(str), begin(str), end(str + strlen(str)) { }
data/libsass-3.6.4/src/sass.cpp:50:18:  [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 len = strlen(str) + 1;
data/libsass-3.6.4/src/source.cpp:24:14:  [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 = strlen(data);
data/libsass-3.6.4/src/util.cpp:448:28:  [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 char* end = it + strlen(it) + 1;
data/libsass-3.6.4/src/util.hpp:71: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).
    return starts_with(str, prefix, std::strlen(prefix));
data/libsass-3.6.4/src/util.hpp:77:48:  [1] (buffer) equal:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
    return suffix.size() <= str.size() && std::equal(suffix.rbegin(), suffix.rend(), str.rbegin());
data/libsass-3.6.4/src/util.hpp:89: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).
    return ends_with(str, suffix, std::strlen(suffix));

ANALYSIS SUMMARY:

Hits = 53
Lines analyzed = 41797 in approximately 0.98 seconds (42696 lines/second)
Physical Source Lines of Code (SLOC) = 30863
Hits@level = [0]   2 [1]  14 [2]  19 [3]  12 [4]   8 [5]   0
Hits@level+ = [0+]  55 [1+]  53 [2+]  39 [3+]  20 [4+]   8 [5+]   0
Hits/KSLOC@level+ = [0+] 1.78207 [1+] 1.71727 [2+] 1.26365 [3+] 0.648025 [4+] 0.25921 [5+]   0
Dot directories skipped = 2 (--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.