aboutsummaryrefslogtreecommitdiff
path: root/src/node_buffer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/node_buffer.cc')
-rw-r--r--src/node_buffer.cc6
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);
}