mirror of https://gitee.com/bigwinds/arangodb
fix buffer overflow
This commit is contained in:
parent
56d4610dca
commit
e7db7f83d1
|
@ -306,18 +306,20 @@ bool parse_ngram_vpack_config(const irs::string_ref& args, irs::analysis::ngram_
|
|||
auto stream_type_json = slice.get(STREAM_TYPE_PARAM_NAME.c_str());
|
||||
|
||||
if (!stream_type_json.isString()) {
|
||||
std::string argString = slice.toJson();
|
||||
IR_FRMT_WARN(
|
||||
"Non-string value in '%s' while constructing ngram_token_stream "
|
||||
"from jSON arguments: %s",
|
||||
STREAM_TYPE_PARAM_NAME.c_str(), args.c_str());
|
||||
STREAM_TYPE_PARAM_NAME.c_str(), argString.c_str());
|
||||
return false;
|
||||
}
|
||||
auto itr = STREAM_TYPE_CONVERT_MAP.find(arangodb::iresearch::getStringRef(stream_type_json));
|
||||
if (itr == STREAM_TYPE_CONVERT_MAP.end()) {
|
||||
std::string argString = slice.toJson();
|
||||
IR_FRMT_WARN(
|
||||
"Invalid value in '%s' while constructing ngram_token_stream from "
|
||||
"jSON arguments: %s",
|
||||
STREAM_TYPE_PARAM_NAME.c_str(), args.c_str());
|
||||
STREAM_TYPE_PARAM_NAME.c_str(), argString.c_str());
|
||||
return false;
|
||||
}
|
||||
options.stream_bytes_type = itr->second;
|
||||
|
@ -334,7 +336,7 @@ bool parse_ngram_vpack_config(const irs::string_ref& args, irs::analysis::ngram_
|
|||
}
|
||||
|
||||
|
||||
irs::analysis::analyzer::ptr ngram_vpack_builder(irs::string_ref const& args) noexcept {
|
||||
irs::analysis::analyzer::ptr ngram_vpack_builder(irs::string_ref const& args) {
|
||||
irs::analysis::ngram_token_stream_base::Options tmp;
|
||||
if (parse_ngram_vpack_config(args, tmp)) {
|
||||
switch (tmp.stream_bytes_type) {
|
||||
|
@ -349,7 +351,7 @@ irs::analysis::analyzer::ptr ngram_vpack_builder(irs::string_ref const& args) no
|
|||
}
|
||||
|
||||
|
||||
bool ngram_vpack_normalizer(const irs::string_ref& args, std::string& out) noexcept {
|
||||
bool ngram_vpack_normalizer(const irs::string_ref& args, std::string& out) {
|
||||
irs::analysis::ngram_token_stream_base::Options tmp;
|
||||
if (parse_ngram_vpack_config(args, tmp)) {
|
||||
VPackBuilder vpack;
|
||||
|
|
Loading…
Reference in New Issue