diff options
Diffstat (limited to 'src/node_buffer.cc')
-rw-r--r-- | src/node_buffer.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/node_buffer.cc b/src/node_buffer.cc index 44020d91a1..bb77387e8f 100644 --- a/src/node_buffer.cc +++ b/src/node_buffer.cc @@ -1011,7 +1011,8 @@ void IndexOfString(const FunctionCallbackInfo<Value>& args) { } size_t offset = static_cast<size_t>(opt_offset); CHECK_LT(offset, haystack_length); - if (is_forward && needle_length + offset > haystack_length) { + if ((is_forward && needle_length + offset > haystack_length) || + needle_length > haystack_length) { return args.GetReturnValue().Set(-1); } @@ -1113,7 +1114,8 @@ void IndexOfBuffer(const FunctionCallbackInfo<Value>& args) { } size_t offset = static_cast<size_t>(opt_offset); CHECK_LT(offset, haystack_length); - if (is_forward && needle_length + offset > haystack_length) { + if ((is_forward && needle_length + offset > haystack_length) || + needle_length > haystack_length) { return args.GetReturnValue().Set(-1); } |