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/redisearch-1.2.2/src/aggregate/aggregate.h
Examining data/redisearch-1.2.2/src/aggregate/aggregate_plan.c
Examining data/redisearch-1.2.2/src/aggregate/aggregate_plan.h
Examining data/redisearch-1.2.2/src/aggregate/aggregate_request.c
Examining data/redisearch-1.2.2/src/aggregate/expr/expression.c
Examining data/redisearch-1.2.2/src/aggregate/expr/expression.h
Examining data/redisearch-1.2.2/src/aggregate/expr/lexer.c
Examining data/redisearch-1.2.2/src/aggregate/expr/parser-toplevel.c
Examining data/redisearch-1.2.2/src/aggregate/expr/parser.h
Examining data/redisearch-1.2.2/src/aggregate/expr/token.h
Examining data/redisearch-1.2.2/src/aggregate/filter.c
Examining data/redisearch-1.2.2/src/aggregate/functions/date.c
Examining data/redisearch-1.2.2/src/aggregate/functions/function.c
Examining data/redisearch-1.2.2/src/aggregate/functions/function.h
Examining data/redisearch-1.2.2/src/aggregate/functions/math.c
Examining data/redisearch-1.2.2/src/aggregate/functions/string.c
Examining data/redisearch-1.2.2/src/aggregate/group_by.c
Examining data/redisearch-1.2.2/src/aggregate/project.h
Examining data/redisearch-1.2.2/src/aggregate/projector.c
Examining data/redisearch-1.2.2/src/aggregate/reducer.c
Examining data/redisearch-1.2.2/src/aggregate/reducer.h
Examining data/redisearch-1.2.2/src/aggregate/reducers/count.c
Examining data/redisearch-1.2.2/src/aggregate/reducers/count_distinct.c
Examining data/redisearch-1.2.2/src/aggregate/reducers/deviation.c
Examining data/redisearch-1.2.2/src/aggregate/reducers/first_value.c
Examining data/redisearch-1.2.2/src/aggregate/reducers/minmax.c
Examining data/redisearch-1.2.2/src/aggregate/reducers/quantile.c
Examining data/redisearch-1.2.2/src/aggregate/reducers/random_sample.c
Examining data/redisearch-1.2.2/src/aggregate/reducers/sum.c
Examining data/redisearch-1.2.2/src/aggregate/reducers/to_list.c
Examining data/redisearch-1.2.2/src/aggregate/aggregate_exec.c
Examining data/redisearch-1.2.2/src/benchmark/benchmark.c
Examining data/redisearch-1.2.2/src/benchmark/time_sample.h
Examining data/redisearch-1.2.2/src/buffer.c
Examining data/redisearch-1.2.2/src/buffer.h
Examining data/redisearch-1.2.2/src/byte_offsets.c
Examining data/redisearch-1.2.2/src/byte_offsets.h
Examining data/redisearch-1.2.2/src/cndict_loader.c
Examining data/redisearch-1.2.2/src/cndict_loader.h
Examining data/redisearch-1.2.2/src/commands.h
Examining data/redisearch-1.2.2/src/concurrent_ctx.h
Examining data/redisearch-1.2.2/src/config.c
Examining data/redisearch-1.2.2/src/config.h
Examining data/redisearch-1.2.2/src/cursor.c
Examining data/redisearch-1.2.2/src/cursor.h
Examining data/redisearch-1.2.2/src/debug_commads.c
Examining data/redisearch-1.2.2/src/debug_commads.h
Examining data/redisearch-1.2.2/src/dep/bloom/contrib/MurmurHash2.c
Examining data/redisearch-1.2.2/src/dep/bloom/contrib/bloom.c
Examining data/redisearch-1.2.2/src/dep/bloom/contrib/bloom.h
Examining data/redisearch-1.2.2/src/dep/bloom/contrib/murmurhash2.h
Examining data/redisearch-1.2.2/src/dep/bloom/sb.c
Examining data/redisearch-1.2.2/src/dep/bloom/sb.h
Examining data/redisearch-1.2.2/src/dep/cndict/cndict_data.c
Examining data/redisearch-1.2.2/src/dep/friso/friso.c
Examining data/redisearch-1.2.2/src/dep/friso/friso.h
Examining data/redisearch-1.2.2/src/dep/friso/friso_API.h
Examining data/redisearch-1.2.2/src/dep/friso/friso_GBK.c
Examining data/redisearch-1.2.2/src/dep/friso/friso_UTF8.c
Examining data/redisearch-1.2.2/src/dep/friso/friso_array.c
Examining data/redisearch-1.2.2/src/dep/friso/friso_ctype.c
Examining data/redisearch-1.2.2/src/dep/friso/friso_ctype.h
Examining data/redisearch-1.2.2/src/dep/friso/friso_hash.c
Examining data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c
Examining data/redisearch-1.2.2/src/dep/friso/friso_link.c
Examining data/redisearch-1.2.2/src/dep/friso/friso_simptrad.h
Examining data/redisearch-1.2.2/src/dep/friso/friso_string.c
Examining data/redisearch-1.2.2/src/dep/hll/hll.c
Examining data/redisearch-1.2.2/src/dep/hll/hll.h
Examining data/redisearch-1.2.2/src/dep/libnu/casemap.h
Examining data/redisearch-1.2.2/src/dep/libnu/casemap_internal.h
Examining data/redisearch-1.2.2/src/dep/libnu/cesu8.c
Examining data/redisearch-1.2.2/src/dep/libnu/cesu8.h
Examining data/redisearch-1.2.2/src/dep/libnu/cesu8_internal.h
Examining data/redisearch-1.2.2/src/dep/libnu/config.h
Examining data/redisearch-1.2.2/src/dep/libnu/defines.h
Examining data/redisearch-1.2.2/src/dep/libnu/ducet.c
Examining data/redisearch-1.2.2/src/dep/libnu/ducet.h
Examining data/redisearch-1.2.2/src/dep/libnu/extra.c
Examining data/redisearch-1.2.2/src/dep/libnu/extra.h
Examining data/redisearch-1.2.2/src/dep/libnu/gen/_ducet.c
Examining data/redisearch-1.2.2/src/dep/libnu/gen/_ducet_switch.c
Examining data/redisearch-1.2.2/src/dep/libnu/gen/_tofold.c
Examining data/redisearch-1.2.2/src/dep/libnu/gen/_tolower.c
Examining data/redisearch-1.2.2/src/dep/libnu/gen/_toupper.c
Examining data/redisearch-1.2.2/src/dep/libnu/libnu.h
Examining data/redisearch-1.2.2/src/dep/libnu/mph.h
Examining data/redisearch-1.2.2/src/dep/libnu/strcoll.c
Examining data/redisearch-1.2.2/src/dep/libnu/strcoll.h
Examining data/redisearch-1.2.2/src/dep/libnu/strcoll_internal.h
Examining data/redisearch-1.2.2/src/dep/libnu/strings.c
Examining data/redisearch-1.2.2/src/dep/libnu/strings.h
Examining data/redisearch-1.2.2/src/dep/libnu/tofold.c
Examining data/redisearch-1.2.2/src/dep/libnu/tolower.c
Examining data/redisearch-1.2.2/src/dep/libnu/toupper.c
Examining data/redisearch-1.2.2/src/dep/libnu/udb.h
Examining data/redisearch-1.2.2/src/dep/libnu/utf16.c
Examining data/redisearch-1.2.2/src/dep/libnu/utf16.h
Examining data/redisearch-1.2.2/src/dep/libnu/utf16_internal.h
Examining data/redisearch-1.2.2/src/dep/libnu/utf16be.c
Examining data/redisearch-1.2.2/src/dep/libnu/utf16be.h
Examining data/redisearch-1.2.2/src/dep/libnu/utf16he.c
Examining data/redisearch-1.2.2/src/dep/libnu/utf16he.h
Examining data/redisearch-1.2.2/src/dep/libnu/utf16le.c
Examining data/redisearch-1.2.2/src/dep/libnu/utf16le.h
Examining data/redisearch-1.2.2/src/dep/libnu/utf32.c
Examining data/redisearch-1.2.2/src/dep/libnu/utf32.h
Examining data/redisearch-1.2.2/src/dep/libnu/utf32_internal.h
Examining data/redisearch-1.2.2/src/dep/libnu/utf32be.c
Examining data/redisearch-1.2.2/src/dep/libnu/utf32be.h
Examining data/redisearch-1.2.2/src/dep/libnu/utf32he.c
Examining data/redisearch-1.2.2/src/dep/libnu/utf32he.h
Examining data/redisearch-1.2.2/src/dep/libnu/utf32le.c
Examining data/redisearch-1.2.2/src/dep/libnu/utf32le.h
Examining data/redisearch-1.2.2/src/dep/libnu/utf8.c
Examining data/redisearch-1.2.2/src/dep/libnu/utf8.h
Examining data/redisearch-1.2.2/src/dep/libnu/utf8_internal.h
Examining data/redisearch-1.2.2/src/dep/libnu/validate.c
Examining data/redisearch-1.2.2/src/dep/libnu/validate.h
Examining data/redisearch-1.2.2/src/dep/libnu/version.c
Examining data/redisearch-1.2.2/src/dep/libnu/version.h
Examining data/redisearch-1.2.2/src/dep/miniz/miniz.c
Examining data/redisearch-1.2.2/src/dep/miniz/miniz.h
Examining data/redisearch-1.2.2/src/dep/snowball/examples/stemwords.c
Examining data/redisearch-1.2.2/src/dep/snowball/include/libstemmer.h
Examining data/redisearch-1.2.2/src/dep/snowball/libstemmer/libstemmer.c
Examining data/redisearch-1.2.2/src/dep/snowball/libstemmer/libstemmer_utf8.c
Examining data/redisearch-1.2.2/src/dep/snowball/libstemmer/modules.h
Examining data/redisearch-1.2.2/src/dep/snowball/libstemmer/modules_utf8.h
Examining data/redisearch-1.2.2/src/dep/snowball/runtime/api.c
Examining data/redisearch-1.2.2/src/dep/snowball/runtime/api.h
Examining data/redisearch-1.2.2/src/dep/snowball/runtime/header.h
Examining data/redisearch-1.2.2/src/dep/snowball/runtime/utilities.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_danish.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_danish.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_dutch.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_dutch.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_english.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_english.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_finnish.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_finnish.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_french.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_french.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_german.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_german.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_italian.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_italian.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_norwegian.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_norwegian.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_porter.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_porter.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_portuguese.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_portuguese.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_spanish.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_spanish.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_swedish.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_1_swedish.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_2_hungarian.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_2_hungarian.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_2_romanian.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_ISO_8859_2_romanian.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_KOI8_R_russian.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_KOI8_R_russian.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_arabic.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_arabic.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_danish.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_danish.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_dutch.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_dutch.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_english.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_english.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_finnish.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_finnish.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_french.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_french.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_german.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_german.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_hungarian.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_hungarian.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_italian.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_italian.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_norwegian.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_norwegian.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_porter.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_porter.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_portuguese.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_portuguese.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_romanian.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_romanian.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_russian.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_russian.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_spanish.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_spanish.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_swedish.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_swedish.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_tamil.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_tamil.h
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_turkish.c
Examining data/redisearch-1.2.2/src/dep/snowball/src_c/stem_UTF_8_turkish.h
Examining data/redisearch-1.2.2/src/dep/thpool/thpool.c
Examining data/redisearch-1.2.2/src/dep/thpool/thpool.h
Examining data/redisearch-1.2.2/src/dep/triemap/test/benchmark.c
Examining data/redisearch-1.2.2/src/dep/triemap/test/crc16.c
Examining data/redisearch-1.2.2/src/dep/triemap/test/minunit.h
Examining data/redisearch-1.2.2/src/dep/triemap/test/test.c
Examining data/redisearch-1.2.2/src/dep/triemap/test/time_sample.h
Examining data/redisearch-1.2.2/src/dep/triemap/triemap.c
Examining data/redisearch-1.2.2/src/dep/triemap/triemap.h
Examining data/redisearch-1.2.2/src/doc_table.c
Examining data/redisearch-1.2.2/src/doc_table.h
Examining data/redisearch-1.2.2/src/document.c
Examining data/redisearch-1.2.2/src/document.h
Examining data/redisearch-1.2.2/src/document_basic.c
Examining data/redisearch-1.2.2/src/err.h
Examining data/redisearch-1.2.2/src/ext/default.c
Examining data/redisearch-1.2.2/src/ext/default.h
Examining data/redisearch-1.2.2/src/extension.c
Examining data/redisearch-1.2.2/src/extension.h
Examining data/redisearch-1.2.2/src/forward_index.c
Examining data/redisearch-1.2.2/src/forward_index.h
Examining data/redisearch-1.2.2/src/fragmenter.c
Examining data/redisearch-1.2.2/src/fragmenter.h
Examining data/redisearch-1.2.2/src/gc.c
Examining data/redisearch-1.2.2/src/gc.h
Examining data/redisearch-1.2.2/src/geo_index.c
Examining data/redisearch-1.2.2/src/geo_index.h
Examining data/redisearch-1.2.2/src/highlight.h
Examining data/redisearch-1.2.2/src/highlight_processor.c
Examining data/redisearch-1.2.2/src/id_filter.c
Examining data/redisearch-1.2.2/src/id_filter.h
Examining data/redisearch-1.2.2/src/id_list.c
Examining data/redisearch-1.2.2/src/id_list.h
Examining data/redisearch-1.2.2/src/index.c
Examining data/redisearch-1.2.2/src/index.h
Examining data/redisearch-1.2.2/src/index_iterator.h
Examining data/redisearch-1.2.2/src/index_result.c
Examining data/redisearch-1.2.2/src/index_result.h
Examining data/redisearch-1.2.2/src/indexer.c
Examining data/redisearch-1.2.2/src/indexer.h
Examining data/redisearch-1.2.2/src/inverted_index.c
Examining data/redisearch-1.2.2/src/inverted_index.h
Examining data/redisearch-1.2.2/src/module-init/module-init.c
Examining data/redisearch-1.2.2/src/module.c
Examining data/redisearch-1.2.2/src/module.h
Examining data/redisearch-1.2.2/src/numeric_filter.c
Examining data/redisearch-1.2.2/src/numeric_filter.h
Examining data/redisearch-1.2.2/src/numeric_index.c
Examining data/redisearch-1.2.2/src/numeric_index.h
Examining data/redisearch-1.2.2/src/offset_vector.c
Examining data/redisearch-1.2.2/src/print_version.c
Examining data/redisearch-1.2.2/src/qint.c
Examining data/redisearch-1.2.2/src/qint.h
Examining data/redisearch-1.2.2/src/query.c
Examining data/redisearch-1.2.2/src/query.h
Examining data/redisearch-1.2.2/src/query_node.h
Examining data/redisearch-1.2.2/src/query_parser/lexer.c
Examining data/redisearch-1.2.2/src/query_parser/parse.h
Examining data/redisearch-1.2.2/src/query_parser/parser-toplevel.c
Examining data/redisearch-1.2.2/src/query_parser/parser.h
Examining data/redisearch-1.2.2/src/query_parser/tokenizer.h
Examining data/redisearch-1.2.2/src/query_plan.h
Examining data/redisearch-1.2.2/src/redis_index.c
Examining data/redisearch-1.2.2/src/redis_index.h
Examining data/redisearch-1.2.2/src/redisearch.h
Examining data/redisearch-1.2.2/src/redismodule.h
Examining data/redisearch-1.2.2/src/result_processor.c
Examining data/redisearch-1.2.2/src/result_processor.h
Examining data/redisearch-1.2.2/src/rmalloc.h
Examining data/redisearch-1.2.2/src/rmutil/alloc.c
Examining data/redisearch-1.2.2/src/rmutil/alloc.h
Examining data/redisearch-1.2.2/src/rmutil/cmdparse.c
Examining data/redisearch-1.2.2/src/rmutil/cmdparse.h
Examining data/redisearch-1.2.2/src/rmutil/heap.c
Examining data/redisearch-1.2.2/src/rmutil/heap.h
Examining data/redisearch-1.2.2/src/rmutil/logging.h
Examining data/redisearch-1.2.2/src/rmutil/periodic.c
Examining data/redisearch-1.2.2/src/rmutil/periodic.h
Examining data/redisearch-1.2.2/src/rmutil/priority_queue.c
Examining data/redisearch-1.2.2/src/rmutil/priority_queue.h
Examining data/redisearch-1.2.2/src/rmutil/sds.c
Examining data/redisearch-1.2.2/src/rmutil/sds.h
Examining data/redisearch-1.2.2/src/rmutil/sdsalloc.h
Examining data/redisearch-1.2.2/src/rmutil/strings.c
Examining data/redisearch-1.2.2/src/rmutil/strings.h
Examining data/redisearch-1.2.2/src/rmutil/test.h
Examining data/redisearch-1.2.2/src/rmutil/test_cmdparse.c
Examining data/redisearch-1.2.2/src/rmutil/test_heap.c
Examining data/redisearch-1.2.2/src/rmutil/test_periodic.c
Examining data/redisearch-1.2.2/src/rmutil/test_priority_queue.c
Examining data/redisearch-1.2.2/src/rmutil/test_util.h
Examining data/redisearch-1.2.2/src/rmutil/test_vector.c
Examining data/redisearch-1.2.2/src/rmutil/util.c
Examining data/redisearch-1.2.2/src/rmutil/util.h
Examining data/redisearch-1.2.2/src/rmutil/vector.c
Examining data/redisearch-1.2.2/src/rmutil/vector.h
Examining data/redisearch-1.2.2/src/search_ctx.h
Examining data/redisearch-1.2.2/src/search_options.h
Examining data/redisearch-1.2.2/src/search_request.c
Examining data/redisearch-1.2.2/src/search_request.h
Examining data/redisearch-1.2.2/src/sortable.c
Examining data/redisearch-1.2.2/src/sortable.h
Examining data/redisearch-1.2.2/src/spec.c
Examining data/redisearch-1.2.2/src/spec.h
Examining data/redisearch-1.2.2/src/stemmer.c
Examining data/redisearch-1.2.2/src/stemmer.h
Examining data/redisearch-1.2.2/src/stopwords.c
Examining data/redisearch-1.2.2/src/stopwords.h
Examining data/redisearch-1.2.2/src/summarize_spec.c
Examining data/redisearch-1.2.2/src/summarize_spec.h
Examining data/redisearch-1.2.2/src/synonym_map.c
Examining data/redisearch-1.2.2/src/synonym_map.h
Examining data/redisearch-1.2.2/src/tag_index.c
Examining data/redisearch-1.2.2/src/tag_index.h
Examining data/redisearch-1.2.2/src/tests/bench-decoder.c
Examining data/redisearch-1.2.2/src/tests/ext-example/example.c
Examining data/redisearch-1.2.2/src/tests/ext-example/example.h
Examining data/redisearch-1.2.2/src/tests/test_aggregate.c
Examining data/redisearch-1.2.2/src/tests/test_arr.c
Examining data/redisearch-1.2.2/src/tests/test_array.c
Examining data/redisearch-1.2.2/src/tests/test_blkalloc.c
Examining data/redisearch-1.2.2/src/tests/test_cntokenize.c
Examining data/redisearch-1.2.2/src/tests/test_expr.c
Examining data/redisearch-1.2.2/src/tests/test_extensions.c
Examining data/redisearch-1.2.2/src/tests/test_index.c
Examining data/redisearch-1.2.2/src/tests/test_khtable.c
Examining data/redisearch-1.2.2/src/tests/test_qint.c
Examining data/redisearch-1.2.2/src/tests/test_quantile.c
Examining data/redisearch-1.2.2/src/tests/test_query.c
Examining data/redisearch-1.2.2/src/tests/test_range.c
Examining data/redisearch-1.2.2/src/tests/test_result_processor.c
Examining data/redisearch-1.2.2/src/tests/test_stemmer.c
Examining data/redisearch-1.2.2/src/tests/test_stopwords.c
Examining data/redisearch-1.2.2/src/tests/test_summarize.c
Examining data/redisearch-1.2.2/src/tests/test_synonym_map.c
Examining data/redisearch-1.2.2/src/tests/test_tag_index.c
Examining data/redisearch-1.2.2/src/tests/test_tokenize.c
Examining data/redisearch-1.2.2/src/tests/test_trie.c
Examining data/redisearch-1.2.2/src/tests/test_util.h
Examining data/redisearch-1.2.2/src/tests/test_value.c
Examining data/redisearch-1.2.2/src/tests/time_sample.h
Examining data/redisearch-1.2.2/src/tokenize.c
Examining data/redisearch-1.2.2/src/tokenize.h
Examining data/redisearch-1.2.2/src/tokenize_cn.c
Examining data/redisearch-1.2.2/src/toksep.h
Examining data/redisearch-1.2.2/src/trie/levenshtein.c
Examining data/redisearch-1.2.2/src/trie/levenshtein.h
Examining data/redisearch-1.2.2/src/trie/rune_util.c
Examining data/redisearch-1.2.2/src/trie/rune_util.h
Examining data/redisearch-1.2.2/src/trie/sparse_vector.c
Examining data/redisearch-1.2.2/src/trie/sparse_vector.h
Examining data/redisearch-1.2.2/src/trie/trie.c
Examining data/redisearch-1.2.2/src/trie/trie.h
Examining data/redisearch-1.2.2/src/trie/trie_type.c
Examining data/redisearch-1.2.2/src/trie/trie_type.h
Examining data/redisearch-1.2.2/src/util/arr.h
Examining data/redisearch-1.2.2/src/util/arr_rm_alloc.h
Examining data/redisearch-1.2.2/src/util/array.c
Examining data/redisearch-1.2.2/src/util/array.h
Examining data/redisearch-1.2.2/src/util/block_alloc.c
Examining data/redisearch-1.2.2/src/util/block_alloc.h
Examining data/redisearch-1.2.2/src/util/fnv.c
Examining data/redisearch-1.2.2/src/util/fnv.h
Examining data/redisearch-1.2.2/src/util/heap.c
Examining data/redisearch-1.2.2/src/util/heap.h
Examining data/redisearch-1.2.2/src/util/khash.h
Examining data/redisearch-1.2.2/src/util/khtable.c
Examining data/redisearch-1.2.2/src/util/khtable.h
Examining data/redisearch-1.2.2/src/util/logging.c
Examining data/redisearch-1.2.2/src/util/logging.h
Examining data/redisearch-1.2.2/src/util/mempool.c
Examining data/redisearch-1.2.2/src/util/mempool.h
Examining data/redisearch-1.2.2/src/util/minmax.h
Examining data/redisearch-1.2.2/src/util/minmax_heap.c
Examining data/redisearch-1.2.2/src/util/minmax_heap.h
Examining data/redisearch-1.2.2/src/util/misc.c
Examining data/redisearch-1.2.2/src/util/misc.h
Examining data/redisearch-1.2.2/src/util/quantile.c
Examining data/redisearch-1.2.2/src/util/quantile.h
Examining data/redisearch-1.2.2/src/util/strconv.h
Examining data/redisearch-1.2.2/src/value.c
Examining data/redisearch-1.2.2/src/value.h
Examining data/redisearch-1.2.2/src/varint.c
Examining data/redisearch-1.2.2/src/varint.h
Examining data/redisearch-1.2.2/src/version.h
Examining data/redisearch-1.2.2/src/concurrent_ctx.c
Examining data/redisearch-1.2.2/src/query_plan.c
Examining data/redisearch-1.2.2/srcutil/lemon.c
Examining data/redisearch-1.2.2/srcutil/lempar.c

FINAL RESULTS:

data/redisearch-1.2.2/src/dep/thpool/thpool.c:32:18:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
#define err(str) fprintf(stderr, str)
data/redisearch-1.2.2/src/dep/triemap/test/minunit.h:128: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.
    snprintf(minunit_last_message, MINUNIT_MESSAGE_LEN,                        \
data/redisearch-1.2.2/src/dep/triemap/test/minunit.h:136:18:  [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(minunit_last_message, MINUNIT_MESSAGE_LEN,           \
data/redisearch-1.2.2/src/dep/triemap/test/minunit.h:143: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.
    snprintf(minunit_last_message, MINUNIT_MESSAGE_LEN,                        \
data/redisearch-1.2.2/src/dep/triemap/test/minunit.h:154:20:  [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(minunit_last_message, MINUNIT_MESSAGE_LEN,         \
data/redisearch-1.2.2/src/dep/triemap/test/minunit.h:166:20:  [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(minunit_last_message, MINUNIT_MESSAGE_LEN,         \
data/redisearch-1.2.2/src/rmutil/cmdparse.c:57:7:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
      printf(n->b ? "TRUE" : "FALSE");
data/redisearch-1.2.2/src/rmutil/sds.c:520:9:  [4] (format) vsnprintf:
  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.
        vsnprintf(buf, buflen, fmt, cpy);
data/redisearch-1.2.2/src/rmutil/sds.h:232:27:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
    __attribute__((format(printf, 2, 3)));
data/redisearch-1.2.2/src/synonym_map.c:166:23:  [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 bytes_written = snprintf(buff, len, SYNONYM_PREFIX "%d", id);
data/redisearch-1.2.2/src/util/logging.h:17:21:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
#define LG_MSG(...) fprintf(stdout, __VA_ARGS__); 
data/redisearch-1.2.2/srcutil/lemon.c:34:12:  [4] (race) access:
  This usually indicates a security flaw. If an attacker can change anything
  along the path between the call to access() and the file's actual use
  (e.g., by moving files), the attacker can exploit the race condition
  (CWE-362/CWE-367!). Set up the correct permissions (e.g., using setuid())
  and try to open the file directly.
extern int access(const char *path, int mode);
data/redisearch-1.2.2/srcutil/lemon.c:1499:3:  [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.
  vfprintf(stderr,format,ap);
data/redisearch-1.2.2/srcutil/lemon.c:3423:13:  [4] (race) access:
  This usually indicates a security flaw. If an attacker can change anything
  along the path between the call to access() and the file's actual use
  (e.g., by moving files), the attacker can exploit the race condition
  (CWE-362/CWE-367!). Set up the correct permissions (e.g., using setuid())
  and try to open the file directly.
        if( access(path,modemask)==0 ) break;
data/redisearch-1.2.2/srcutil/lemon.c:3504:9:  [4] (race) access:
  This usually indicates a security flaw. If an attacker can change anything
  along the path between the call to access() and the file's actual use
  (e.g., by moving files), the attacker can exploit the race condition
  (CWE-362/CWE-367!). Set up the correct permissions (e.g., using setuid())
  and try to open the file directly.
    if( access(user_templatename,004)==-1 ){
data/redisearch-1.2.2/srcutil/lemon.c:3526:7:  [4] (race) access:
  This usually indicates a security flaw. If an attacker can change anything
  along the path between the call to access() and the file's actual use
  (e.g., by moving files), the attacker can exploit the race condition
  (CWE-362/CWE-367!). Set up the correct permissions (e.g., using setuid())
  and try to open the file directly.
  if( access(buf,004)==0 ){
data/redisearch-1.2.2/srcutil/lemon.c:3528:13:  [4] (race) access:
  This usually indicates a security flaw. If an attacker can change anything
  along the path between the call to access() and the file's actual use
  (e.g., by moving files), the attacker can exploit the race condition
  (CWE-362/CWE-367!). Set up the correct permissions (e.g., using setuid())
  and try to open the file directly.
  }else if( access(templatename,004)==0 ){
data/redisearch-1.2.2/src/config.c:79:7:  [3] (buffer) getenv:
  Environment variables are untrustable input if they can be set by an
  attacker. They can have any content and length, and the same variable can
  be set more than once (CWE-807, CWE-20). Check environment variables
  carefully before using them.
  if (getenv("RS_MIN_THREADS")) {
data/redisearch-1.2.2/src/tests/test_extensions.c:15:25:  [3] (buffer) getenv:
  Environment variables are untrustable input if they can be set by an
  attacker. They can have any content and length, and the same variable can
  be set more than once (CWE-807, CWE-20). Check environment variables
  carefully before using them.
  const char *extPath = getenv("EXT_TEST_PATH");
data/redisearch-1.2.2/srcutil/lemon.c:3407:16:  [3] (buffer) getenv:
  Environment variables are untrustable input if they can be set by an
  attacker. They can have any content and length, and the same variable can
  be set more than once (CWE-807, CWE-20). Check environment variables
  carefully before using them.
    pathlist = getenv("PATH");
data/redisearch-1.2.2/src/aggregate/aggregate_plan.c:179: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[255];
data/redisearch-1.2.2/src/aggregate/functions/date.c:23:10:  [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 timebuf[1024] = {0};  // Should be enough for any human time string
data/redisearch-1.2.2/src/aggregate/functions/date.c:274: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 fmtbuf[1024] = {0};
data/redisearch-1.2.2/src/aggregate/functions/date.c:275: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 valbuf[1024] = {0};
data/redisearch-1.2.2/src/aggregate/functions/date.c:288: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(fmtbuf, origfmt, fmtlen);
data/redisearch-1.2.2/src/aggregate/functions/date.c:289: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(valbuf, origval, vallen);
data/redisearch-1.2.2/src/aggregate/functions/function.c:11: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(ret, str, len);
data/redisearch-1.2.2/src/aggregate/reducers/count_distinct.c:129: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(str, &hdr, hdrsize);
data/redisearch-1.2.2/src/aggregate/reducers/count_distinct.c:130: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(str + hdrsize, ctr->hll.registers, ctr->hll.size);
data/redisearch-1.2.2/src/aggregate/reducers/count_distinct.c:212:5:  [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(ctr->hll.registers, registers, regsz);
data/redisearch-1.2.2/src/aggregate/reducers/random_sample.c:49: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(arr, sc->samples, top * sizeof(RSValue *));
data/redisearch-1.2.2/src/benchmark/benchmark.c:23: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 tag[n], name[n];
data/redisearch-1.2.2/src/buffer.h:42: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(data, br->buf->data + br->pos, len);
data/redisearch-1.2.2/src/buffer.h:109: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(bw->pos, data, len);
data/redisearch-1.2.2/src/dep/bloom/sb.c:243:5:  [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(link->inner.bf + offset, buf, bufLen);
data/redisearch-1.2.2/src/dep/cndict/cndict_data.c:18813:1:  [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(frisoConfig->kpuncs, "@%.#&+");
data/redisearch-1.2.2/src/dep/friso/friso.c:42:5:  [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 __chars__[256], __key__[128], *__line__;
data/redisearch-1.2.2/src/dep/friso/friso.c:43:5:  [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 __lexi__[160], lexpath[160];
data/redisearch-1.2.2/src/dep/friso/friso.c:55:23:  [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).
    if ( ( __stream = fopen( __ifile, "rb" ) ) != NULL ) {
data/redisearch-1.2.2/src/dep/friso/friso.c:109:48:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
                config->max_len = ( ushort_t ) atoi( __line__ );
data/redisearch-1.2.2/src/dep/friso/friso.c:111:47:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
                config->r_name = ( ushort_t ) atoi( __line__ );
data/redisearch-1.2.2/src/dep/friso/friso.c:113:48:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
                config->mix_len = ( ushort_t ) atoi( __line__ );
data/redisearch-1.2.2/src/dep/friso/friso.c:115:48:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
                config->lna_len = ( ushort_t ) atoi( __line__ );
data/redisearch-1.2.2/src/dep/friso/friso.c:117:48:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
                config->add_syn = ( ushort_t ) atoi( __line__ );
data/redisearch-1.2.2/src/dep/friso/friso.c:119:48:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
                config->clr_stw = ( ushort_t ) atoi( __line__ );    
data/redisearch-1.2.2/src/dep/friso/friso.c:121:48:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
                config->keep_urec = ( uint_t ) atoi( __line__ );    
data/redisearch-1.2.2/src/dep/friso/friso.c:123:48:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
                config->spx_out = ( ushort_t ) atoi( __line__ );
data/redisearch-1.2.2/src/dep/friso/friso.c:125:38:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
                config->nthreshold = atoi( __line__ );
data/redisearch-1.2.2/src/dep/friso/friso.c:128:55:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
                friso_set_mode(config, (friso_mode_t) atoi( __line__ ));
data/redisearch-1.2.2/src/dep/friso/friso.c:130:52:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
                friso->charset = (friso_charset_t) atoi( __line__ );
data/redisearch-1.2.2/src/dep/friso/friso.c:132:46:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
                config->en_sseg = (ushort_t) atoi( __line__ );
data/redisearch-1.2.2/src/dep/friso/friso.c:134:46:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
                config->st_minl = (ushort_t) atoi( __line__ );
data/redisearch-1.2.2/src/dep/friso/friso.c:137:17:  [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(config->kpuncs, __line__, t);
data/redisearch-1.2.2/src/dep/friso/friso.c:164:17:  [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(lexpath, __ifile, flen);
data/redisearch-1.2.2/src/dep/friso/friso.c:165:17:  [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(lexpath + flen, __lexi__, __hit__ - 1);
data/redisearch-1.2.2/src/dep/friso/friso.c:171:17:  [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(lexpath, __lexi__, __hit__);
data/redisearch-1.2.2/src/dep/friso/friso.c:1212:9:  [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(task->token->word + len, "|", 1);
data/redisearch-1.2.2/src/dep/friso/friso.c:1214:9:  [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(task->token->word + len, _word, j);
data/redisearch-1.2.2/src/dep/friso/friso.c:1383:9:  [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(task->token->word, lex->word, lex->length);
data/redisearch-1.2.2/src/dep/friso/friso.c:1448:17:  [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(task->token->word, task->buffer, task->bytes );
data/redisearch-1.2.2/src/dep/friso/friso.c:1519:13:  [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(task->token->word, lex->word, lex->length);
data/redisearch-1.2.2/src/dep/friso/friso.c:1639:13:  [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(task->token->word, lex->word, lex->length);
data/redisearch-1.2.2/src/dep/friso/friso.c:1671:13:  [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(task->token->word, task->buffer, task->bytes);
data/redisearch-1.2.2/src/dep/friso/friso.c:1689:13:  [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(task->token->word, task->buffer, task->bytes);
data/redisearch-1.2.2/src/dep/friso/friso.c:1723:9:  [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(task->token->word, lex->word, lex->length);
data/redisearch-1.2.2/src/dep/friso/friso.c:1802:9:  [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(task->token->word, lex->word, lex->length);
data/redisearch-1.2.2/src/dep/friso/friso.h:116:5:  [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 word[__HITS_WORD_LENGTH__];
data/redisearch-1.2.2/src/dep/friso/friso.h:143:5:  [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[7];         //word buffer. (1-6 bytes for an utf-8 word in C).
data/redisearch-1.2.2/src/dep/friso/friso.h:172:5:  [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 kpuncs[_FRISO_KEEP_PUNC_LEN]; //keep punctuations buffer.
data/redisearch-1.2.2/src/dep/friso/friso_GBK.c:33:5:  [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(__word, task->text + (*idx), task->bytes);
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:284:5:  [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 __char[1024], _buffer[512];
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:289:5:  [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 _sbuffer[512];
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:294:22:  [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).
    if ( ( _stream = fopen( lex_file, "rb" ) ) != NULL ) {
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:347:24:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
                _fre = atoi( _buffer );
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:437:5:  [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 __chars__[1024], __key__[30], *__line__;
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:449:23:  [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).
    if ( ( __stream = fopen( sb->buffer, "rb" ) ) != NULL ) {
data/redisearch-1.2.2/src/dep/friso/friso_string.c:49:5:  [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( str, sb->buffer, sb->length );
data/redisearch-1.2.2/src/dep/friso/friso_string.c:100:5:  [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->buffer, str, sb->length );
data/redisearch-1.2.2/src/dep/friso/friso_string.c:120:5:  [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->buffer + sb->length, __str, __len__ );
data/redisearch-1.2.2/src/dep/hll/hll.c:137: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(hll->registers, registers, size);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:29:18:  [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.
typedef unsigned char mz_validate_uint16[sizeof(mz_uint16) == 2 ? 1 : -1];
data/redisearch-1.2.2/src/dep/miniz/miniz.c:30:18:  [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.
typedef unsigned char mz_validate_uint32[sizeof(mz_uint32) == 4 ? 1 : -1];
data/redisearch-1.2.2/src/dep/miniz/miniz.c:31:18:  [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.
typedef unsigned char mz_validate_uint64[sizeof(mz_uint64) == 8 ? 1 : -1];
data/redisearch-1.2.2/src/dep/miniz/miniz.c:460:9:  [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(pStream->next_out, pState->m_dict + pState->m_dict_ofs, n);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:485:9:  [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(pStream->next_out, pState->m_dict + pState->m_dict_ofs, n);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:961:5:  [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(code_sizes_to_pack, &d->m_huff_code_sizes[0][0], num_lit_codes);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:962:5:  [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(code_sizes_to_pack + num_lit_codes, &d->m_huff_code_sizes[1][0], num_dist_codes);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:1324:13:  [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((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs, d->m_output_buf, bytes_to_copy);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:1346:2:  [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(&ret, p, sizeof(mz_uint16));
data/redisearch-1.2.2/src/dep/miniz/miniz.c:1352:2:  [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(&ret, p, sizeof(mz_uint16));
data/redisearch-1.2.2/src/dep/miniz/miniz.c:1476:13:  [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(d->m_dict + dst_pos, d->m_pSrc, n);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:1478:17:  [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(d->m_dict + TDEFL_LZ_DICT_SIZE + dst_pos, d->m_pSrc, MZ_MIN(n, (TDEFL_MAX_MATCH_LEN - 1) - dst_pos));
data/redisearch-1.2.2/src/dep/miniz/miniz.c:1826:9:  [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((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs, d->m_output_buf + d->m_output_flush_ofs, n);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:1998:5:  [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((mz_uint8 *)p->m_pBuf + p->m_size, pBuf, len);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:2122:9:  [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(out_buf.m_pBuf, pnghdr, 41);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:2200:31:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
#define TINFL_MEMCPY(d, s, l) memcpy(d, s, l)
data/redisearch-1.2.2/src/dep/miniz/miniz.c:2972:24:  [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).
#define MZ_FOPEN(f, m) fopen(f, m)
data/redisearch-1.2.2/src/dep/miniz/miniz.c:2987:24:  [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).
#define MZ_FOPEN(f, m) fopen(f, m)
data/redisearch-1.2.2/src/dep/miniz/miniz.c:3017:24:  [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).
#define MZ_FOPEN(f, m) fopen(f, m)
data/redisearch-1.2.2/src/dep/miniz/miniz.c:3034:24:  [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).
#define MZ_FOPEN(f, m) fopen(f, m)
data/redisearch-1.2.2/src/dep/miniz/miniz.c:3252:5:  [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((mz_uint8 *)pArray->m_p + orig_size * pArray->m_element_size, pElements, n * pArray->m_element_size);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:3795:5:  [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(pBuf, (const mz_uint8 *)pZip->m_pState->m_pMem + file_ofs, s);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:4068:5:  [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(pStat->m_filename, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, n);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:4074:5:  [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(pStat->m_comment, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS) + MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS), n);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:4878:13:  [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( pvBuf, pState->pRead_buf, copied_to_caller );
data/redisearch-1.2.2/src/dep/miniz/miniz.c:4950:17:  [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( (uint8_t*)pvBuf + copied_to_caller, pWrite_buf_cur, to_copy );
data/redisearch-1.2.2/src/dep/miniz/miniz.c:5503:5:  [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((mz_uint8 *)pState->m_pMem + file_ofs, pBuf, n);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:5690: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 buf[4096];
data/redisearch-1.2.2/src/dep/miniz/miniz.c:5995:5:  [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[4096];
data/redisearch-1.2.2/src/dep/miniz/miniz.c:6982:5:  [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(new_central_header, pSrc_central_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:7532:9:  [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(pFilename, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, n);
data/redisearch-1.2.2/src/dep/miniz/miniz.h:960:5:  [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 m_filename[MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE];
data/redisearch-1.2.2/src/dep/miniz/miniz.h:964:5:  [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 m_comment[MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE];
data/redisearch-1.2.2/src/dep/snowball/examples/stemwords.c:179:32:  [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).
    f_in = (in == 0) ? stdin : fopen(in, "r");
data/redisearch-1.2.2/src/dep/snowball/examples/stemwords.c:184:35:  [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).
    f_out = (out == 0) ? stdout : fopen(out, "w");
data/redisearch-1.2.2/src/dep/thpool/thpool.c:291: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 thread_name[128] = {0};
data/redisearch-1.2.2/src/dep/thpool/thpool.c:292: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(thread_name, "thread-pool-%d", thread_p->id);
data/redisearch-1.2.2/src/dep/triemap/test/benchmark.c:31:10:  [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.
  return sprintf(buf, "key:%d", i);
data/redisearch-1.2.2/src/dep/triemap/test/benchmark.c:39: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[k + 1];
data/redisearch-1.2.2/src/dep/triemap/test/minunit.h:76:8:  [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 minunit_last_message[MINUNIT_MESSAGE_LEN];
data/redisearch-1.2.2/src/dep/triemap/test/test.c:11: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[32];
data/redisearch-1.2.2/src/dep/triemap/test/test.c:14:5:  [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, "key%d", i);
data/redisearch-1.2.2/src/dep/triemap/test/test.c:39:5:  [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, "key%d", i);
data/redisearch-1.2.2/src/dep/triemap/test/test.c:48:5:  [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, "key%d", i);
data/redisearch-1.2.2/src/dep/triemap/test/test.c:63: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[32];
data/redisearch-1.2.2/src/dep/triemap/test/test.c:66:5:  [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, "key%d", i);
data/redisearch-1.2.2/src/dep/triemap/test/test.c:119: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[32];
data/redisearch-1.2.2/src/dep/triemap/test/test.c:123:5:  [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, "key%d", i);
data/redisearch-1.2.2/src/dep/triemap/test/test.c:138:5:  [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 prefix[5];
data/redisearch-1.2.2/src/dep/triemap/test/test.c:139:5:  [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(prefix, "key%d", i);
data/redisearch-1.2.2/src/dep/triemap/test/test.c:158: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[0xfffff + 10];
data/redisearch-1.2.2/src/dep/triemap/triemap.c:49: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(n->str, str + offset, nlen);
data/redisearch-1.2.2/src/dep/triemap/triemap.c:83: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(newChildren, children, sizeof(TrieMapNode *) * n->numChildren);
data/redisearch-1.2.2/src/dep/triemap/triemap.c:84: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(__trieMapNode_childKey(newChild, 0), __trieMapNode_childKey(n, 0), n->numChildren);
data/redisearch-1.2.2/src/dep/triemap/triemap.c:337: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 nstr[n->len + ch->len + 1];
data/redisearch-1.2.2/src/dep/triemap/triemap.c:338: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(nstr, n->str, sizeof(char) * n->len);
data/redisearch-1.2.2/src/dep/triemap/triemap.c:339: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(&nstr[n->len], ch->str, sizeof(char) * ch->len);
data/redisearch-1.2.2/src/dep/triemap/triemap.c:346: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(__trieMapNode_children(merged), __trieMapNode_children(ch),
data/redisearch-1.2.2/src/dep/triemap/triemap.c:348: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(__trieMapNode_childKey(merged, 0), __trieMapNode_childKey(ch, 0), merged->numChildren);
data/redisearch-1.2.2/src/dep/triemap/triemap.c:690:5:  [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(buf + bufSize, stack[i]->str, stack[i]->len);
data/redisearch-1.2.2/src/doc_table.c:141: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(dmd->payload->data, data, len);
data/redisearch-1.2.2/src/doc_table.c:206:5:  [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(dpl->data, payload, payloadSize);
data/redisearch-1.2.2/src/ext/default.c:168:23:  [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 const unsigned char bitsinbyte[256] = {
data/redisearch-1.2.2/src/ext/default.c:297:5:  [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(dup + 1, stemmed, sl + 1);
data/redisearch-1.2.2/src/ext/default.c:338:5:  [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 buff[BUFF_LEN];
data/redisearch-1.2.2/src/forward_index.c:150: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(dst, s, n);
data/redisearch-1.2.2/src/forward_index.c:235:7:  [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 synonym_buff[SYNONYM_BUFF_LEN];
data/redisearch-1.2.2/src/fragmenter.c:231:5:  [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(docBuf + offset, iovs[ii].iov_base, iovs[ii].iov_len);
data/redisearch-1.2.2/src/geo_index.c:106:26:  [2] (integer) atol:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
    docIds[i] = (t_docId)atol(s);
data/redisearch-1.2.2/src/id_list.c:127:16:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
  if (num > 0) memcpy(it->docIds, ids, num * sizeof(t_docId));
data/redisearch-1.2.2/src/index_result.c:104:9:  [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(ret->term.offsets.data, src->term.offsets.data, ret->term.offsets.len);
data/redisearch-1.2.2/src/module.c:183:7:  [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[1024];
data/redisearch-1.2.2/src/module.c:342:7:  [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[2];
data/redisearch-1.2.2/src/module.c:343:7:  [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, "%c", sp->fields[i].tagOpts.separator);
data/redisearch-1.2.2/src/module.c:1204: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.
  char *s = (char *)RedisModule_StringPtrLen(argv[2], &len);
data/redisearch-1.2.2/src/query.c:603:7:  [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 *terms[n->pn.numChildren];
data/redisearch-1.2.2/src/query.c:789: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[len * 2 + 1];
data/redisearch-1.2.2/src/redis_index.c:99: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_s[1024] = {"ft:"};
data/redisearch-1.2.2/src/redis_index.c:106:5:  [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(buf, "ft:");
data/redisearch-1.2.2/src/redis_index.c:111: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(buf + offset, ctx->spec->name, nameLen);
data/redisearch-1.2.2/src/redis_index.c:114: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(buf + offset, term, len);
data/redisearch-1.2.2/src/rmalloc.h:31:5:  [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(ret, s, n);
data/redisearch-1.2.2/src/rmutil/alloc.c:10:5:  [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(ret, s, n);
data/redisearch-1.2.2/src/rmutil/cmdparse.c:893:26:  [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.
    ret[i] = CMD_STRING((char *)argv[i]);
data/redisearch-1.2.2/src/rmutil/heap.c:25:7:  [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 t[v->elemSize];
data/redisearch-1.2.2/src/rmutil/heap.c:26:7:  [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(t, __vector_GetPtr(v, last), v->elemSize);
data/redisearch-1.2.2/src/rmutil/heap.c:28:9:  [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(__vector_GetPtr(v, last), __vector_GetPtr(v, ptr), v->elemSize);
data/redisearch-1.2.2/src/rmutil/heap.c:34:7:  [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(__vector_GetPtr(v, last), t, v->elemSize);
data/redisearch-1.2.2/src/rmutil/heap.c:60: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 top[v->elemSize];
data/redisearch-1.2.2/src/rmutil/heap.c:61: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(top, __vector_GetPtr(v, start), v->elemSize);
data/redisearch-1.2.2/src/rmutil/heap.c:64:5:  [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(__vector_GetPtr(v, start), __vector_GetPtr(v, first + child), v->elemSize);
data/redisearch-1.2.2/src/rmutil/heap.c:80: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(__vector_GetPtr(v, start), top, v->elemSize);
data/redisearch-1.2.2/src/rmutil/sds.c:132:9:  [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(s, init, initlen);
data/redisearch-1.2.2/src/rmutil/sds.c:229:9:  [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((char*)newsh+hdrlen, s, len+1);
data/redisearch-1.2.2/src/rmutil/sds.c:261:9:  [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((char*)newsh+hdrlen, s, len+1);
data/redisearch-1.2.2/src/rmutil/sds.c:381:5:  [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(s+curlen, t, len);
data/redisearch-1.2.2/src/rmutil/sds.c:410:5:  [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(s, t, len);
data/redisearch-1.2.2/src/rmutil/sds.c:494:5:  [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[SDS_LLSTR_SIZE];
data/redisearch-1.2.2/src/rmutil/sds.c:503:5:  [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 staticbuf[1024], *buf = staticbuf, *t;
data/redisearch-1.2.2/src/rmutil/sds.c:611:17:  [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(s+i,str,l);
data/redisearch-1.2.2/src/rmutil/sds.c:622:21:  [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[SDS_LLSTR_SIZE];
data/redisearch-1.2.2/src/rmutil/sds.c:627:21:  [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(s+i,buf,l);
data/redisearch-1.2.2/src/rmutil/sds.c:639:21:  [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[SDS_LLSTR_SIZE];
data/redisearch-1.2.2/src/rmutil/sds.c:644:21:  [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(s+i,buf,l);
data/redisearch-1.2.2/src/rmutil/test_vector.c:30: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 *strings[4] = {"hello", "world", "foo", "bar"};
data/redisearch-1.2.2/src/rmutil/util.c:162:13:  [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.
      *p = (char *)RedisModule_StringPtrLen(argv[i], NULL);
data/redisearch-1.2.2/src/rmutil/util.c:166:13:  [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.
      *p = (char *)RedisModule_StringPtrLen(argv[i], len);
data/redisearch-1.2.2/src/rmutil/vector.c:19: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(ptr, v->data + (pos * v->elemSize), v->elemSize);
data/redisearch-1.2.2/src/rmutil/vector.c:42:5:  [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(v->data + pos * v->elemSize, elem, v->elemSize);
data/redisearch-1.2.2/src/search_request.c:147:7:  [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(req->payload.data, data, req->payload.len);
data/redisearch-1.2.2/src/search_request.c:203: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.
  req->rawQuery = (char *)RedisModule_StringPtrLen(argv[2], &req->qlen);
data/redisearch-1.2.2/src/spec.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.
  const char *args[argc];
data/redisearch-1.2.2/src/spec.c:325: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.
  const char *args[argc];
data/redisearch-1.2.2/src/spec.c:367:20:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
    int listSize = atoi(argv[swIndex + 1]);
data/redisearch-1.2.2/src/spec.c:437: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 *samples[sampleSize];
data/redisearch-1.2.2/src/stemmer.c:51:5:  [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(stctx->buf + 1, stemmed, *outlen + 1);
data/redisearch-1.2.2/src/stopwords.c:47: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.
  const char *cstrs[len];
data/redisearch-1.2.2/src/stopwords.c:49:17:  [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.
    cstrs[i] = (char *)RedisModule_StringPtrLen(strs[i], NULL);
data/redisearch-1.2.2/src/summarize_spec.c:12:87:  [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).
static int parseTags(RedisModuleString **argv, int argc, size_t *offset, const char **open,
data/redisearch-1.2.2/src/summarize_spec.c:20:47:  [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).
  RMUtil_ParseArgs(argv, argc, *offset, "cc", open, close);
data/redisearch-1.2.2/src/tests/test_blkalloc.c:53: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 fillerSpace[32];
data/redisearch-1.2.2/src/tests/test_blkalloc.c:55: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 trailerSpace[43];
data/redisearch-1.2.2/src/tests/test_cntokenize.c:21:14:  [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 *fp = fopen(name, "rb");
data/redisearch-1.2.2/src/tests/test_index.c:879: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 *args[n + N * 3];
data/redisearch-1.2.2/src/tests/test_index.c:897: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 *args2[n + N * 3];
data/redisearch-1.2.2/src/tests/test_index.c:989: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[16];
data/redisearch-1.2.2/src/tests/test_index.c:996:5:  [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, "doc_%d", i);
data/redisearch-1.2.2/src/tests/test_index.c:1009:5:  [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, "doc_%d", i);
data/redisearch-1.2.2/src/tests/test_quantile.c:34:8:  [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).
  fp = fopen("./quantile_data.txt", "rb");
data/redisearch-1.2.2/src/tests/test_summarize.c:12:14:  [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 *fp = fopen(name, "rb");
data/redisearch-1.2.2/src/tests/test_trie.c:115: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 expectedRunes[3] = {'y', 'Y', '\0'};
data/redisearch-1.2.2/src/tests/test_trie.c:230:14:  [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 *fp = fopen("./titles.csv", "r");
data/redisearch-1.2.2/src/tokenize.c:47:5:  [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(realDest, s, ii); \
data/redisearch-1.2.2/src/tokenize.c:83:5:  [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 normalized_s[MAX_NORMALIZE_SIZE];
data/redisearch-1.2.2/src/toksep.h:7: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 const char ToksepMap_g[256] = {
data/redisearch-1.2.2/src/trie/trie.c:17: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(p->data, payload, sizeof(char) * plen);
data/redisearch-1.2.2/src/trie/trie.c:29: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(n->str, str + offset, sizeof(rune) * (len - offset));
data/redisearch-1.2.2/src/trie/trie.c:58: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(newChildren, children, sizeof(TrieNode *) * n->numChildren);
data/redisearch-1.2.2/src/trie/trie.c:89: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(nstr, n->str, sizeof(rune) * n->len);
data/redisearch-1.2.2/src/trie/trie.c:90: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(&nstr[n->len], ch->str, sizeof(rune) * ch->len);
data/redisearch-1.2.2/src/trie/trie.c:99: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(newChildren, children, sizeof(TrieNode *) * merged->numChildren);
data/redisearch-1.2.2/src/trie/trie.c:597:5:  [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(&buf[bufSize], stack[i]->str, sizeof(rune) * stack[i]->len);
data/redisearch-1.2.2/src/util/array.c:59: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(ptr, data, len);
data/redisearch-1.2.2/src/util/block_alloc.h:10: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 data[0] __attribute__((aligned(16)));
data/redisearch-1.2.2/src/util/quantile.c:279:5:  [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(ret->quantiles, quantiles, sizeof(*quantiles) * numQuantiles);
data/redisearch-1.2.2/src/value.c:467: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 buf1[100], buf2[100];
data/redisearch-1.2.2/src/value.c:492:7:  [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[128];
data/redisearch-1.2.2/src/value.c:731:17:  [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.
        *ptr = (char *)RSValue_StringPtrLen(args[i], NULL);
data/redisearch-1.2.2/src/varint.c:38: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(buf, VARINT_BUF(varint, pos), VARINT_LEN(pos));
data/redisearch-1.2.2/src/varint.c:47: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(buf->data + buf->offset, VARINT_BUF(varint, pos), n);
data/redisearch-1.2.2/src/varint.c:62: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(w->pos, VARINT_BUF(varint, pos), nw);
data/redisearch-1.2.2/srcutil/lemon.c:88: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(&zBuf[*pnUsed], zIn, nIn);
data/redisearch-1.2.2/srcutil/lemon.c:97: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 zTemp[50];
data/redisearch-1.2.2/srcutil/lemon.c:1525:15:  [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.
  azDefine = (char **) realloc(azDefine, sizeof(azDefine[0])*nDefine);
data/redisearch-1.2.2/srcutil/lemon.c:1891: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 *set[LISTSIZE];
data/redisearch-1.2.2/srcutil/lemon.c:1985:16:  [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.
    (*(void(*)(char *))(op[j].arg))(&argv[i][2]);
data/redisearch-1.2.2/srcutil/lemon.c:2079: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.
        (*(void(*)(char *))(op[j].arg))(sv);
data/redisearch-1.2.2/srcutil/lemon.c:2230: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.
  const char *alias[MAXRHS]; /* Aliases for each RHS symbol (or NULL) */
data/redisearch-1.2.2/srcutil/lemon.c:2616: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 zLine[50];
data/redisearch-1.2.2/srcutil/lemon.c:2643:11:  [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(zBuf, zLine, nLine);
data/redisearch-1.2.2/srcutil/lemon.c:2658:9:  [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(zBuf, zNew, nNew);
data/redisearch-1.2.2/srcutil/lemon.c:2846:8:  [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).
  fp = fopen(ps.filename,"rb");
data/redisearch-1.2.2/srcutil/lemon.c:3089:8:  [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).
  fp = fopen(lemp->outname,mode);
data/redisearch-1.2.2/srcutil/lemon.c:3303:7:  [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[20];
data/redisearch-1.2.2/srcutil/lemon.c:3472: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 line[LINESIZE];
data/redisearch-1.2.2/srcutil/lemon.c:3497: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[1000];
data/redisearch-1.2.2/srcutil/lemon.c:3510:10:  [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).
    in = fopen(user_templatename,"rb");
data/redisearch-1.2.2/srcutil/lemon.c:3539:8:  [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).
  in = fopen(tpltname,"rb");
data/redisearch-1.2.2/srcutil/lemon.c:3653:10:  [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 empty[1] = { 0 };
data/redisearch-1.2.2/srcutil/lemon.c:3658: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 zInt[40];
data/redisearch-1.2.2/srcutil/lemon.c:3708: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 used[MAXRHS];     /* True for each RHS element which is used */
data/redisearch-1.2.2/srcutil/lemon.c:3709: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 zLhs[50];         /* Convert the LHS symbol into this string */
data/redisearch-1.2.2/srcutil/lemon.c:3710: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 zOvwrt[900];      /* Comment that to allow LHS to overwrite RHS */
data/redisearch-1.2.2/srcutil/lemon.c:3716:12:  [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 newlinestr[2] = { '\n', '\0' };
data/redisearch-1.2.2/srcutil/lemon.c:3768:5:  [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(zLhs, "yymsp[%d].minor.yy%d",1-rp->nrhs,rp->lhs->dtnum);
data/redisearch-1.2.2/srcutil/lemon.c:3771:5:  [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(zLhs, "yylhsminor.yy%d",rp->lhs->dtnum);
data/redisearch-1.2.2/srcutil/lemon.c:4147: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 line[LINESIZE];
data/redisearch-1.2.2/srcutil/lemon.c:4679: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 line[LINESIZE];
data/redisearch-1.2.2/srcutil/lemon.c:4680: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 pattern[LINESIZE];
data/redisearch-1.2.2/srcutil/lempar.c:473:17:  [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 unsigned char yycoverage[YYNSTATE][YYNTOKEN];
data/redisearch-1.2.2/src/aggregate/aggregate_plan.c:28:35:  [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).
  RSExpr *pe = RSExpr_Parse(expr, strlen(expr), err);
data/redisearch-1.2.2/src/aggregate/aggregate_plan.c:42:35:  [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).
  RSExpr *pe = RSExpr_Parse(expr, strlen(expr), err);
data/redisearch-1.2.2/src/aggregate/aggregate_plan.c:727: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).
    sds s = sdscatrepr(sdsnew(""), args[i], strlen(args[i]));
data/redisearch-1.2.2/src/aggregate/aggregate_plan.c:807:60:  [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).
    RedisModule_ReplyWithStringBuffer(ctx, sc[i].property, strlen(sc[i].property));
data/redisearch-1.2.2/src/aggregate/aggregate_plan.c:809:47:  [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).
    RedisModule_ReplyWithStringBuffer(ctx, t, strlen(t));
data/redisearch-1.2.2/src/aggregate/aggregate_request.c:156: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).
  return NewProjector(sctx, upstream, a->alias, a->rawExpr, strlen(a->rawExpr), err);
data/redisearch-1.2.2/src/aggregate/aggregate_request.c:161:48:  [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 NewFilter(sctx, upstream, f->rawExpr, strlen(f->rawExpr), err);
data/redisearch-1.2.2/src/aggregate/aggregate_request.c:177:86:  [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).
        FieldList_GetCreateField(&ls->fl, RedisModule_CreateString(ctx->redisCtx, k, strlen(k)));
data/redisearch-1.2.2/src/aggregate/expr/expression.c:49:27:  [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).
  e->literal.strval.len = strlen(e->literal.strval.str);
data/redisearch-1.2.2/src/aggregate/expr/expression.c:381:58:  [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 RSFunctionRegistry_GetType(expr->func.name, strlen(expr->func.name));
data/redisearch-1.2.2/src/aggregate/functions/function.c:31: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).
    if (len == strlen(functions_g.funcs[i].name) &&
data/redisearch-1.2.2/src/aggregate/functions/function.c:41: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).
    if (len == strlen(functions_g.funcs[i].name) &&
data/redisearch-1.2.2/src/benchmark/benchmark.c:60: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).
    redisCommand(c, "FT.SUGGET userslex %b MAX 10 FUZZY", str, strlen(str));
data/redisearch-1.2.2/src/cndict_loader.c:32:20:  [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 termLen = strlen(term);
data/redisearch-1.2.2/src/cndict_loader.c:51:23:  [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 synLen = strlen(curSyn);
data/redisearch-1.2.2/src/debug_commads.c:41:62:  [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).
  FieldSpec *fieldSpec = IndexSpec_GetField(spec, fieldName, strlen(fieldName));
data/redisearch-1.2.2/src/debug_commads.c:58:68:  [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).
    RedisModule_ReplyWithStringBuffer(sctx->redisCtx, doc->keyPtr, strlen(doc->keyPtr));
data/redisearch-1.2.2/src/dep/friso/friso.c:63:26:  [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( __line__ );
data/redisearch-1.2.2/src/dep/friso/friso.c:350:20:  [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).
    task->length = strlen( text );
data/redisearch-1.2.2/src/dep/friso/friso.c:1210:13:  [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).
        j = strlen(_word);
data/redisearch-1.2.2/src/dep/friso/friso.c:1242:17:  [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).
                strlen(_word), __LEX_NCSYN_WORDS__ );
data/redisearch-1.2.2/src/dep/friso/friso_GBK.c:155:15:  [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).
    int len = strlen(str), i, p = 0;
data/redisearch-1.2.2/src/dep/friso/friso_UTF8.c:339:15:  [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).
    int len = strlen(str), i, p = 0;
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:153: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).
                    (uint_t) strlen(word),  (uint_t) lex ) );
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:171: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).
                    ( uint_t ) strlen(word), ( uint_t ) lex ) );
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:190:19:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    while ( ( c = fgetc( _stream ) ) != EOF ) {
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:257: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).
    __length__ = strlen( __str );
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:299: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).
            if ( _line[0] == '#' && strlen(_line) > 1 ) continue;
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:304: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).
                if ( ((int)_line[0]) < 0 && strlen( _line ) > length ) continue;
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:306: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).
                        string_copy_heap( _line, strlen(_line) ), NULL ); 
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:317:48:  [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).
            _word = string_copy_heap( _buffer, strlen(_buffer) );
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:333: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).
                    && strlen( _word ) > length ) {
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:341: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).
                _syn = string_copy( _buffer, _sbuffer, strlen(_buffer) );
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:360:26:  [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).
                    if ( strlen(_buffer) > length ) continue;
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:362:55:  [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).
                            string_copy_heap(_buffer, strlen(_buffer)) );
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:456:26:  [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( __line__ );
data/redisearch-1.2.2/src/dep/friso/friso_lexicon.c:479: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).
                    __length__ = strlen( __line__ );
data/redisearch-1.2.2/src/dep/friso/friso_string.c:91: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).
    sb->length = strlen( str );
data/redisearch-1.2.2/src/dep/friso/friso_string.c:108:31:  [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).
    register uint_t __len__ = strlen( __str );
data/redisearch-1.2.2/src/dep/friso/friso_string.c:233:17:  [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).
    e->delLen = strlen(delimiter);
data/redisearch-1.2.2/src/dep/friso/friso_string.c:235:17:  [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).
    e->srcLen = strlen(source);
data/redisearch-1.2.2/src/dep/friso/friso_string.c:247:19:  [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).
    sst->delLen = strlen(delimiter);
data/redisearch-1.2.2/src/dep/friso/friso_string.c:249:19:  [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).
    sst->srcLen = strlen(source);    
data/redisearch-1.2.2/src/dep/friso/friso_string.c:257:19:  [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).
    sst->srcLen = strlen(source);
data/redisearch-1.2.2/src/dep/friso/friso_string.c:265:19:  [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).
    sst->delLen = strlen( delimiter );
data/redisearch-1.2.2/src/dep/libnu/casemap.h:58:84:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
const char* _nu_toupper(const char *encoded, const char *limit, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/casemap.h:92:84:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
const char* _nu_tolower(const char *encoded, const char *limit, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/casemap.h:125:83:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
const char* _nu_tofold(const char *encoded, const char *limit, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/extra.c:60:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	nu_read_iterator_t read, nu_transformation_t transform, nu_read_iterator_t transform_read) {
data/redisearch-1.2.2/src/dep/libnu/extra.c:67:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		p = read(p, &u);
data/redisearch-1.2.2/src/dep/libnu/extra.c:96:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	nu_read_iterator_t read, nu_transform_read_t it, nu_read_iterator_t transform_read,
data/redisearch-1.2.2/src/dep/libnu/extra.c:106:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		p = it(p, limit, read, &u, &map, context);
data/redisearch-1.2.2/src/dep/libnu/extra.c:149:68:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
ssize_t nu_strtransformlen(const char *encoded, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/extra.c:152:3:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		read, transform, transform_read);
data/redisearch-1.2.2/src/dep/libnu/extra.c:155:69:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
ssize_t _nu_strtransformlen(const char *encoded, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/extra.c:158:62:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	return _nu_strtransformnlen_internal(encoded, NU_UNLIMITED, read,
data/redisearch-1.2.2/src/dep/libnu/extra.c:181:85:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
ssize_t nu_strtransformnlen(const char *encoded, size_t max_len, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/extra.c:183:72:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	return _nu_strtransformnlen_unconditional(encoded, encoded + max_len, read,
data/redisearch-1.2.2/src/dep/libnu/extra.c:187:86:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
ssize_t _nu_strtransformnlen(const char *encoded, size_t max_len, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/extra.c:190:67:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	return _nu_strtransformnlen_internal(encoded, encoded + max_len, read,
data/redisearch-1.2.2/src/dep/libnu/extra.h:90:68:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
ssize_t nu_strtransformlen(const char *encoded, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/extra.h:108:69:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
ssize_t _nu_strtransformlen(const char *encoded, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/extra.h:145:85:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
ssize_t nu_strtransformnlen(const char *encoded, size_t max_len, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/extra.h:153:86:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
ssize_t _nu_strtransformnlen(const char *encoded, size_t max_len, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:12:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	nu_read_iterator_t read, nu_compound_read_t com,
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:25:34:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		const char *np = com(p, limit, read, &u, &tailp);
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:44:26:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
					np = com(np, limit, read, 0, &tailp);
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:162:33:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	uint32_t c, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:180:38:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		const char *np = com(p, lhs_limit, read, &u, &tail);
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:207:29:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				np = com(np, lhs_limit, read, &u, &tail);
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:228:33:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	uint32_t c, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:242:31:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		p = _nu_strchr(p, limit, c, read, com, casemap, casemap_read);
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:249:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		p = read(p, 0); /* skip one codepoint and continue */
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:312:75:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
const char* nu_strchr(const char *encoded, uint32_t c, nu_read_iterator_t read) {
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:314:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		c, read,
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:319:79:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
const char* nu_strcasechr(const char *encoded, uint32_t c, nu_read_iterator_t read) {
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:321:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		c, read,
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:326:76:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
const char* nu_strrchr(const char *encoded, uint32_t c, nu_read_iterator_t read) {
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:328:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		c, read,
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:333:80:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
const char* nu_strrcasechr(const char *encoded, uint32_t c, nu_read_iterator_t read) {
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:334:47:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	return _nu_strrchr(encoded, NU_UNLIMITED, c, read,
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:379:92:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
const char* nu_strnchr(const char *encoded, size_t max_len, uint32_t c, nu_read_iterator_t read) {
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:381:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		c, read,
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:386:96:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
const char* nu_strcasenchr(const char *encoded, size_t max_len, uint32_t c, nu_read_iterator_t read) {
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:388:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		c, read,
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:393:93:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
const char* nu_strrnchr(const char *encoded, size_t max_len, uint32_t c, nu_read_iterator_t read) {
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:395:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		c, read,
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:401:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	nu_read_iterator_t read) {
data/redisearch-1.2.2/src/dep/libnu/strcoll.c:403:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		c, read,
data/redisearch-1.2.2/src/dep/libnu/strcoll.h:47:75:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
const char* nu_strchr(const char *encoded, uint32_t c, nu_read_iterator_t read);
data/redisearch-1.2.2/src/dep/libnu/strcoll.h:55:79:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
const char* nu_strcasechr(const char *encoded, uint32_t c, nu_read_iterator_t read);
data/redisearch-1.2.2/src/dep/libnu/strcoll.h:66:76:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
const char* nu_strrchr(const char *encoded, uint32_t c, nu_read_iterator_t read);
data/redisearch-1.2.2/src/dep/libnu/strcoll.h:74:80:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
const char* nu_strrcasechr(const char *encoded, uint32_t c, nu_read_iterator_t read);
data/redisearch-1.2.2/src/dep/libnu/strcoll.h:131:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	nu_read_iterator_t read);
data/redisearch-1.2.2/src/dep/libnu/strcoll.h:139:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	nu_read_iterator_t read);
data/redisearch-1.2.2/src/dep/libnu/strcoll.h:147:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	nu_read_iterator_t read);
data/redisearch-1.2.2/src/dep/libnu/strcoll.h:155:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	nu_read_iterator_t read);
data/redisearch-1.2.2/src/dep/libnu/strcoll_internal.h:178:33:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	uint32_t c, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/strcoll_internal.h:189:33:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	uint32_t c, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/strings.h:80:61:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	const char *encoded, const char *limit, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/tofold.c:13:83:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
const char* _nu_tofold(const char *encoded, const char *limit, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/tofold.c:21:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	const char *np = read(encoded, &_u);
data/redisearch-1.2.2/src/dep/libnu/tolower.c:18:84:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
const char* _nu_tolower(const char *encoded, const char *limit, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/tolower.c:25:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	const char *np = read(encoded, &_u);
data/redisearch-1.2.2/src/dep/libnu/tolower.c:45:3:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		read(np, &nu);
data/redisearch-1.2.2/src/dep/libnu/toupper.c:13:84:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
const char* _nu_toupper(const char *encoded, const char *limit, nu_read_iterator_t read,
data/redisearch-1.2.2/src/dep/libnu/toupper.c:21:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	const char *np = read(encoded, &_u);
data/redisearch-1.2.2/src/dep/libnu/utf16.h:44:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	nu_read_iterator_t read;
data/redisearch-1.2.2/src/dep/libnu/utf32.h:39:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	nu_read_iterator_t read;
data/redisearch-1.2.2/src/dep/miniz/miniz.c:4192: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).
    const mz_uint filename_len = (mz_uint)strlen(pFilename);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:4254: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).
    name_len = strlen(pName);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:4258: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).
    comment_len = pComment ? strlen(pComment) : 0;
data/redisearch-1.2.2/src/dep/miniz/miniz.c:5164: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).
    if (local_header_filename_len != strlen(file_stat.m_filename))
data/redisearch-1.2.2/src/dep/miniz/miniz.c:6086: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).
    archive_name_size = strlen(pArchive_name);
data/redisearch-1.2.2/src/dep/miniz/miniz.c:6356: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).
    archive_name_size = strlen(pArchive_name);
data/redisearch-1.2.2/src/dep/snowball/examples/stemwords.c:23:18:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        int ch = getc(f_in);
data/redisearch-1.2.2/src/dep/snowball/examples/stemwords.c:47:22:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                ch = getc(f_in);
data/redisearch-1.2.2/src/dep/triemap/test/benchmark.c:102:29:  [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).
    TrieMap_Delete(tm, buf, strlen((char *)buf), NULL);
data/redisearch-1.2.2/src/dep/triemap/test/test.c:17:35:  [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).
    int rc = TrieMap_Add(tm, buf, strlen(buf), NULL, NULL);
data/redisearch-1.2.2/src/dep/triemap/test/test.c:19:31:  [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).
    rc = TrieMap_Add(tm, buf, strlen(buf), pi, NULL);
data/redisearch-1.2.2/src/dep/triemap/test/test.c:41: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).
    void *p = TrieMap_Find(tm, buf, strlen(buf));
data/redisearch-1.2.2/src/dep/triemap/test/test.c:50: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).
    int rc = TrieMap_Delete(tm, buf, strlen(buf), NULL);
data/redisearch-1.2.2/src/dep/triemap/test/test.c:52: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).
    rc = TrieMap_Delete(tm, buf, strlen(buf), NULL);
data/redisearch-1.2.2/src/dep/triemap/test/test.c:69:26:  [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).
    TrieMap_Add(tm, buf, strlen(buf), pi, NULL);
data/redisearch-1.2.2/src/dep/triemap/test/test.c:124:26:  [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).
    TrieMap_Add(tm, buf, strlen(buf), strdup(buf), NULL);
data/redisearch-1.2.2/src/dep/triemap/test/test.c:141:59:  [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).
      void *val = TrieMap_RandomValueByPrefix(tm, prefix, strlen(prefix));
data/redisearch-1.2.2/src/dep/triemap/test/test.c:145:46:  [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).
      mu_check(!strncmp((char *)val, prefix, strlen(prefix)));
data/redisearch-1.2.2/src/doc_table.h:169:70:  [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).
  t_docId id = DocTable_GetId(dt, (RSDocumentKey){.str = key, .len = strlen(key)});
data/redisearch-1.2.2/src/document.c:63:53:  [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).
    FieldSpec *fs = IndexSpec_GetField(sp, f->name, strlen(f->name));
data/redisearch-1.2.2/src/document.c:535: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).
  RSExpr *e = RSExpr_Parse(expr, strlen(expr), err);
data/redisearch-1.2.2/src/document.c:640:63:  [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).
      FieldSpec *fs = IndexSpec_GetField(sctx->spec, f->name, strlen(f->name));
data/redisearch-1.2.2/src/document.c:651:69:  [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).
      int idx = IndexSpec_GetFieldSortingIndex(sctx->spec, f->name, strlen(f->name));
data/redisearch-1.2.2/src/document_basic.c:108:65:  [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).
    RedisModule_ReplyWithStringBuffer(ctx, doc->fields[j].name, strlen(doc->fields[j].name));
data/redisearch-1.2.2/src/extension.c:37:46:  [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).
  if (TrieMap_Find(__scorers, (char *)alias, strlen(alias)) != TRIEMAP_NOTFOUND) {
data/redisearch-1.2.2/src/extension.c:42:41:  [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).
  TrieMap_Add(__scorers, (char *)alias, strlen(alias), ctx, NULL);
data/redisearch-1.2.2/src/extension.c:58:53:  [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).
  if (TrieMap_Find(__queryExpanders, (char *)alias, strlen(alias)) != TRIEMAP_NOTFOUND) {
data/redisearch-1.2.2/src/extension.c:62:48:  [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).
  TrieMap_Add(__queryExpanders, (char *)alias, strlen(alias), ctx, NULL);
data/redisearch-1.2.2/src/extension.c:110:68:  [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).
  ExtScoringFunctionCtx *p = TrieMap_Find(__scorers, (char *)name, strlen(name));
data/redisearch-1.2.2/src/extension.c:160:67:  [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).
    QueryPhraseNode_AddChild(ph, NewTokenNodeExpanded(q, toks[i], strlen(toks[i]), flags));
data/redisearch-1.2.2/src/extension.c:193:73:  [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).
  ExtQueryExpanderCtx *p = TrieMap_Find(__queryExpanders, (char *)name, strlen(name));
data/redisearch-1.2.2/src/fragmenter.c:113:22:  [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).
  fragList->docLen = strlen(doc);
data/redisearch-1.2.2/src/fragmenter.c:196:20:  [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 openLen = strlen(tags->openTag);
data/redisearch-1.2.2/src/fragmenter.c:197:21:  [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 closeLen = strlen(tags->closeTag);
data/redisearch-1.2.2/src/fragmenter.c:369: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).
  size_t openLen = tags->openTag ? strlen(tags->openTag) : 0;
data/redisearch-1.2.2/src/fragmenter.c:370: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).
  size_t closeLen = tags->closeTag ? strlen(tags->closeTag) : 0;
data/redisearch-1.2.2/src/gc.c:118:62:  [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).
  InvertedIndex *idx = Redis_OpenInvertedIndexEx(sctx, term, strlen(term), 1, &idxKey);
data/redisearch-1.2.2/src/gc.c:146:51:  [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).
      idx = Redis_OpenInvertedIndexEx(sctx, term, strlen(term), 1, &idxKey);
data/redisearch-1.2.2/src/highlight_processor.c:45: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 FieldSpec *fs = IndexSpec_GetField(spec, fieldName, strlen(fieldName));
data/redisearch-1.2.2/src/highlight_processor.c:216:17:  [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).
                strlen(fieldInfo->summarizeSettings.separator));
data/redisearch-1.2.2/src/module.c:149: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).
  if (lang && !IsSupportedLanguage(lang, strlen(lang))) {
data/redisearch-1.2.2/src/module.c:293: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).
    RedisModule_ReplyWithStringBuffer(ctx, str, strlen(str)); \
data/redisearch-1.2.2/src/module.c:537:51:  [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).
  RedisModule_ReplyWithStringBuffer(ctx, explain, strlen(explain));
data/redisearch-1.2.2/src/module.c:675: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).
  if (lang && !IsSupportedLanguage(lang, strlen(lang))) {
data/redisearch-1.2.2/src/module.c:1383:58:  [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).
    RedisModule_ReplyWithStringBuffer(ctx, t_data->term, strlen(t_data->term));
data/redisearch-1.2.2/src/query.c:128:11:  [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).
    len = strlen(s);
data/redisearch-1.2.2/src/query.c:481:62:  [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).
      IndexSpec_GetField(q->sctx->spec, node->nf->fieldName, strlen(node->nf->fieldName));
data/redisearch-1.2.2/src/query.c:492:73:  [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).
  FieldSpec *fs = IndexSpec_GetField(q->sctx->spec, node->gf->property, strlen(node->gf->property));
data/redisearch-1.2.2/src/query_plan.c:87:41:  [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).
                                        strlen(r->fields->fields[i].key));
data/redisearch-1.2.2/src/redis_index.c:101:20:  [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 nameLen = strlen(ctx->spec->name);
data/redisearch-1.2.2/src/redis_index.c:221:41:  [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).
    if (!strncmp(kstr, TERM_KEY_PREFIX, strlen(TERM_KEY_PREFIX))) {
data/redisearch-1.2.2/src/redis_index.c:229:23:  [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 offset = strlen(TERM_KEY_PREFIX);
data/redisearch-1.2.2/src/rmutil/cmdparse.c:14: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).
  size_t l = strlen(other);
data/redisearch-1.2.2/src/rmutil/cmdparse.c:343:27:  [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).
      for (int i = 0; i < strlen(e->tup.fmt); i++) {
data/redisearch-1.2.2/src/rmutil/cmdparse.c:349:27:  [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).
      for (int i = 0; i < strlen(e->var.fmt); i++) {
data/redisearch-1.2.2/src/rmutil/cmdparse.c:576: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).
  size_t len = strlen(tup->fmt);
data/redisearch-1.2.2/src/rmutil/cmdparse.c:632:13:  [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).
  int len = strlen(var->fmt);
data/redisearch-1.2.2/src/rmutil/cmdparse.h:28:53:  [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).
#define CMD_STRING(s) ((CmdString){.str = s, .len = strlen(s)})
data/redisearch-1.2.2/src/rmutil/sds.c:145: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).
    size_t initlen = (init == NULL) ? 0 : strlen(init);
data/redisearch-1.2.2/src/rmutil/sds.c:175:19:  [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).
    int reallen = strlen(s);
data/redisearch-1.2.2/src/rmutil/sds.c:392: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).
    return sdscatlen(s, t, strlen(t));
data/redisearch-1.2.2/src/rmutil/sds.c:419: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).
    return sdscpylen(s, t, strlen(t));
data/redisearch-1.2.2/src/rmutil/sds.c:504:21:  [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 buflen = strlen(fmt)*2;
data/redisearch-1.2.2/src/rmutil/sds.c:607: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).
                l = (next == 's') ? strlen(str) : sdslen(str);
data/redisearch-1.2.2/src/rmutil/strings.c:36:19:  [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 l1, l2 = strlen(s2);
data/redisearch-1.2.2/src/rmutil/strings.c:45:19:  [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 l1, l2 = strlen(s2);
data/redisearch-1.2.2/src/rmutil/test_util.h:23:113:  [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).
            RMUtil_StringEquals(RedisModule_CreateStringFromCallReply(rep), RedisModule_CreateString(ctx, cstr, strlen(cstr))) \
data/redisearch-1.2.2/src/rmutil/test_util.h:42: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).
    RedisModuleString **argv = calloc(strlen(fmt), sizeof(RedisModuleString*));
data/redisearch-1.2.2/src/rmutil/test_util.h:48: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).
            argv[argc++] = RedisModule_CreateString(ctx, cstr, strlen(cstr));
data/redisearch-1.2.2/src/rmutil/util.c:18:17:  [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 larg = strlen(arg);
data/redisearch-1.2.2/src/rmutil/util.c:36:17:  [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 larg = strlen(arg);
data/redisearch-1.2.2/src/search_request.c:120: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).
        !IsSupportedLanguage(req->opts.language, strlen(req->opts.language))) {
data/redisearch-1.2.2/src/sortable.c:38:23:  [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 buflen = 2 * strlen(str) + 1;
data/redisearch-1.2.2/src/sortable.c:75:62:  [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).
        tbl->values[idx] = RSValue_IncrRef(RS_StringValT(ns, strlen(ns), RSString_RMAlloc));
data/redisearch-1.2.2/src/spec.c:27: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).
    if (len != strlen(spec->fields[i].name)) continue;
data/redisearch-1.2.2/src/spec.c:201:11:  [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).
      if (strlen(argv[*offset]) == 1) {
data/redisearch-1.2.2/src/spec.c:302: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).
    if (IndexSpec_GetField(sp, fs->name, strlen(fs->name))) {
data/redisearch-1.2.2/src/spec.c:618:74:  [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).
    RedisModuleString *keyName = RedisModule_CreateString(ctx, sp->name, strlen(sp->name));
data/redisearch-1.2.2/src/spec.c:659:46:  [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).
  RedisModule_SaveStringBuffer(rdb, f->name, strlen(f->name) + 1);
data/redisearch-1.2.2/src/spec.c:797:47:  [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).
  RedisModule_SaveStringBuffer(rdb, sp->name, strlen(sp->name) + 1);
data/redisearch-1.2.2/src/stemmer.c:16:31:  [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).
                     MAX(len, strlen(__supportedLanguages[i])))) {
data/redisearch-1.2.2/src/stopwords.c:69:19:  [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 tlen = strlen(t);
data/redisearch-1.2.2/src/synonym_map.c:49:51:  [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).
  RedisModule_SaveStringBuffer(rdb, t_data->term, strlen(t_data->term) + 1);
data/redisearch-1.2.2/src/synonym_map.c:131:71:  [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).
        kh_get(SynMapKhid, smap->h_table, calculate_hash(synonyms[i], strlen(synonyms[i])));
data/redisearch-1.2.2/src/synonym_map.c:133:73:  [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).
      k = kh_put(SynMapKhid, smap->h_table, calculate_hash(synonyms[i], strlen(synonyms[i])), &ret);
data/redisearch-1.2.2/src/synonym_map.h:131: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).
  SynonymMap_GetIdsBySynonym(smap, synonym, strlen(synonym))
data/redisearch-1.2.2/src/tag_index.c:106: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).
      ret += tagIndex_Put(idx, tok, strlen(tok), docId);
data/redisearch-1.2.2/src/tests/test_cntokenize.c:51:7:  [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).
  if (strlen(buf) == 0) {
data/redisearch-1.2.2/src/tests/test_cntokenize.c:64: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).
  cnTok->Start(cnTok, cnTxt, strlen(cnTxt), 0);
data/redisearch-1.2.2/src/tests/test_expr.c:27: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).
  RSExpr *root = RSExpr_Parse(e, strlen(e), &err);
data/redisearch-1.2.2/src/tests/test_expr.c:47: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).
  RSExpr *root = RSExpr_Parse(e, strlen(e), &err);
data/redisearch-1.2.2/src/tests/test_expr.c:68: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).
  RSExpr *root = RSExpr_Parse(e, strlen(e), &err);
data/redisearch-1.2.2/src/tests/test_expr.c:88: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).
  RSExpr *root = RSExpr_Parse(e, strlen(e), err);
data/redisearch-1.2.2/src/tests/test_expr.c:164: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).
  RSExpr *root = RSExpr_Parse(e, strlen(e), &err);
data/redisearch-1.2.2/src/tests/test_expr.c:178:26:  [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).
  root = RSExpr_Parse(e, strlen(e), &err);
data/redisearch-1.2.2/src/tests/test_expr.c:196: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).
  RSExpr *root = RSExpr_Parse(e, strlen(e), &err);
data/redisearch-1.2.2/src/tests/test_extensions.c:123: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).
  QueryParseCtx *q = NewQueryParseCtx(NULL, qt, strlen(qt), &opt);
data/redisearch-1.2.2/src/tests/test_index.c:659: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).
  size_t l = Buffer_Write(&w, (void *)x, strlen(x) + 1);
data/redisearch-1.2.2/src/tests/test_index.c:661:15:  [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(l == strlen(x) + 1);
data/redisearch-1.2.2/src/tests/test_index.c:677:20:  [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 *y = malloc(strlen(x) + 1);
data/redisearch-1.2.2/src/tests/test_index.c:678:27:  [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).
  l = Buffer_Read(&br, y, strlen(x) + 1);
data/redisearch-1.2.2/src/tests/test_index.c:679:15:  [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(l == strlen(x) + 1);
data/redisearch-1.2.2/src/tests/test_index.c:763:46:  [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).
  FieldSpec *f = IndexSpec_GetField(s, body, strlen(body));
data/redisearch-1.2.2/src/tests/test_index.c:772: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).
  f = IndexSpec_GetField(s, title, strlen(title));
data/redisearch-1.2.2/src/tests/test_index.c:781: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).
  f = IndexSpec_GetField(s, foo, strlen(foo));
data/redisearch-1.2.2/src/tests/test_index.c:790: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).
  f = IndexSpec_GetField(s, bar, strlen(bar));
data/redisearch-1.2.2/src/tests/test_index.c:801:35:  [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).
  f = IndexSpec_GetField(s, name, strlen(name));
data/redisearch-1.2.2/src/tests/test_index.c:812:51:  [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).
  int rc = IndexSpec_GetFieldSortingIndex(s, foo, strlen(foo));
data/redisearch-1.2.2/src/tests/test_index.c:814:47:  [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).
  rc = IndexSpec_GetFieldSortingIndex(s, bar, strlen(bar));
data/redisearch-1.2.2/src/tests/test_index.c:816: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).
  rc = IndexSpec_GetFieldSortingIndex(s, title, strlen(title));
data/redisearch-1.2.2/src/tests/test_index.c:997:44:  [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).
    RSDocumentKey docKey = MakeDocKey(buf, strlen(buf));
data/redisearch-1.2.2/src/tests/test_index.c:998:83:  [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).
    t_docId nd = DocTable_Put(&dt, docKey, (double)i, Document_DefaultFlags, buf, strlen(buf));
data/redisearch-1.2.2/src/tests/test_index.c:1028:57:  [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).
    t_docId xid = DocIdMap_Get(&dt.dim, MakeDocKey(buf, strlen(buf)));
data/redisearch-1.2.2/src/tests/test_index.c:1040:59:  [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(0 == DocIdMap_Get(&dt.dim, MakeDocKey("foo bar", strlen("foo bar"))));
data/redisearch-1.2.2/src/tests/test_khtable.c:28: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).
  return rs_fnv_32a_buf((char *)s, strlen(s), 0);
data/redisearch-1.2.2/src/tests/test_query.c:20:67:  [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).
#define QUERY_PARSE_CTX(ctx, qt, opts) NewQueryParseCtx(&ctx, qt, strlen(qt), &opts);
data/redisearch-1.2.2/src/tests/test_stemmer.c:13:59:  [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 *stem = s->Stem(s->ctx, "arbitrary", (size_t)strlen("arbitrary"), &sl);
data/redisearch-1.2.2/src/tests/test_stemmer.c:16: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).
  ASSERT(sl == strlen(stem));
data/redisearch-1.2.2/src/tests/test_stemmer.c:53:22:  [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).
  tk->Start(tk, txt, strlen(txt), 0);
data/redisearch-1.2.2/src/tests/test_stemmer.c:64: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).
      ASSERT(strlen(tx->expectedStems[tx->num]) == t.stemLen);
data/redisearch-1.2.2/src/tests/test_stopwords.c:16:53:  [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(StopWordList_Contains(sl, test_terms[i], strlen(test_terms[i])));
data/redisearch-1.2.2/src/tests/test_stopwords.c:19: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).
  ASSERT(!StopWordList_Contains(sl, "asdfasdf", strlen("asdfasdf")));
data/redisearch-1.2.2/src/tests/test_stopwords.c:34:60:  [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(StopWordList_Contains(sl, DEFAULT_STOPWORDS[i], strlen(DEFAULT_STOPWORDS[i])));
data/redisearch-1.2.2/src/tests/test_stopwords.c:39:54:  [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(!StopWordList_Contains(sl, test_terms[i], strlen(test_terms[i])));
data/redisearch-1.2.2/src/tests/test_summarize.c:42:7:  [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).
  if (strlen(buf) == 0) {
data/redisearch-1.2.2/src/tests/test_summarize.c:51:41:  [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).
#define SIMPLE_TERM(s) FRAGMENT_TERM(s, strlen(s), 1)
data/redisearch-1.2.2/src/tests/test_summarize.c:52:48:  [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).
#define SCORED_TERM(s, score) FRAGMENT_TERM(s, strlen(s), score)
data/redisearch-1.2.2/src/tests/test_summarize.c:73:10:  [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(strlen(hlRes) > strlen(lorem));
data/redisearch-1.2.2/src/tests/test_summarize.c:73:26:  [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(strlen(hlRes) > strlen(lorem));
data/redisearch-1.2.2/src/tests/test_tokenize.c:13:22:  [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).
  tk->Start(tk, txt, strlen(txt), TOKENIZE_DEFAULT_OPTIONS);
data/redisearch-1.2.2/src/tests/test_tokenize.c:19:26:  [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(tok.tokLen == strlen(expected[i]));
data/redisearch-1.2.2/src/tests/test_trie.c:46: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).
  RSPayload payload = {.data = payloadStr, .len = payloadStr ? strlen(payloadStr) : 0};
data/redisearch-1.2.2/src/tests/test_trie.c:236:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  ssize_t read;
data/redisearch-1.2.2/src/tests/test_value.c:15: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).
  ASSERT_EQUAL(strlen(str), v->strval.len);
data/redisearch-1.2.2/src/trie/rune_util.c:75:20:  [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).
  strToRunesN(str, strlen(str), ret);
data/redisearch-1.2.2/src/util/strconv.h:11: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).
#define STR_EQCASE(str, len, other) (len == strlen(other) && !strncasecmp(str, other, len))
data/redisearch-1.2.2/src/util/strconv.h:14:41:  [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).
#define STR_EQ(str, len, other) (len == strlen(other) && !strncmp(str, other, len))
data/redisearch-1.2.2/src/util/strconv.h:46:23:  [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).
  if (STR_EQCASE(arg, strlen(arg), "true") || STR_EQCASE(arg, strlen(arg), "1")) {
data/redisearch-1.2.2/src/util/strconv.h:46:63:  [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).
  if (STR_EQCASE(arg, strlen(arg), "true") || STR_EQCASE(arg, strlen(arg), "1")) {
data/redisearch-1.2.2/src/util/strconv.h:51:23:  [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).
  if (STR_EQCASE(arg, strlen(arg), "false") || STR_EQCASE(arg, strlen(arg), "0")) {
data/redisearch-1.2.2/src/util/strconv.h:51: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).
  if (STR_EQCASE(arg, strlen(arg), "false") || STR_EQCASE(arg, strlen(arg), "0")) {
data/redisearch-1.2.2/src/value.c:168: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).
  return RS_StringVal(str, strlen(str));
data/redisearch-1.2.2/src/value.c:178: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).
  return RS_StringVal(buf, strlen(buf));
data/redisearch-1.2.2/src/value.c:182:29:  [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 RS_StringValT(str, strlen(str), RSString_Const);
data/redisearch-1.2.2/src/value.c:208:35:  [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).
      RSValue_SetString(dst, str, strlen(str));
data/redisearch-1.2.2/src/value.c:386: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).
    arr[i] = RS_StringValT(strs[i], strlen(strs[i]), st);
data/redisearch-1.2.2/src/value.c:494:58:  [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 RedisModule_ReplyWithStringBuffer(ctx, buf, strlen(buf));
data/redisearch-1.2.2/srcutil/lemon.c:59: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).
#define lemonStrlen(X)   ((int)strlen(X))
data/redisearch-1.2.2/srcutil/lemon.c:3356: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).
    w = (int)strlen(sp->name);
data/redisearch-1.2.2/srcutil/lemon.c:4693:16:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    nextChar = fgetc(in);

ANALYSIS SUMMARY:

Hits = 519
Lines analyzed = 132874 in approximately 6.19 seconds (21459 lines/second)
Physical Source Lines of Code (SLOC) = 108828
Hits@level = [0] 520 [1] 259 [2] 240 [3]   3 [4]  17 [5]   0
Hits@level+ = [0+] 1039 [1+] 519 [2+] 260 [3+]  20 [4+]  17 [5+]   0
Hits/KSLOC@level+ = [0+] 9.54718 [1+] 4.76899 [2+] 2.38909 [3+] 0.183776 [4+] 0.15621 [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.