mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-09-30 03:34:25 +03:00
hscollider: fix input length for UTF8 check
This commit is contained in:
committed by
Chang, Harry
parent
f877f14641
commit
08b00f6149
@@ -118,7 +118,8 @@ ParsedExpression::ParsedExpression(unsigned index_in, const char *expression,
|
||||
|
||||
expr.utf8 = mode.utf8; /* utf8 may be set by parse() */
|
||||
|
||||
if (expr.utf8 && !isValidUtf8(expression)) {
|
||||
const size_t len = strlen(expression);
|
||||
if (expr.utf8 && !isValidUtf8(expression, len)) {
|
||||
throw ParseError("Expression is not valid UTF-8.");
|
||||
}
|
||||
|
||||
|
@@ -60,12 +60,11 @@ bool isAllowedCodepoint(u32 val) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool isValidUtf8(const char *expression) {
|
||||
bool isValidUtf8(const char *expression, const size_t len) {
|
||||
if (!expression) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const size_t len = strlen(expression);
|
||||
const u8 *s = (const u8 *)expression;
|
||||
u32 val;
|
||||
|
||||
|
@@ -29,10 +29,12 @@
|
||||
#ifndef PARSER_UTF8_VALIDATE_H
|
||||
#define PARSER_UTF8_VALIDATE_H
|
||||
|
||||
#include <cstddef> // size_t
|
||||
|
||||
namespace ue2 {
|
||||
|
||||
/** \brief Validate that the given expression is well-formed UTF-8. */
|
||||
bool isValidUtf8(const char *expression);
|
||||
bool isValidUtf8(const char *expression, const size_t len);
|
||||
|
||||
} // namespace ue2
|
||||
|
||||
|
Reference in New Issue
Block a user