Fixed/Completed buffer copy range checks.
authorkriskowal <kris.kowal@cixar.com>
Sat, 1 May 2010 00:30:14 +0000 (17:30 -0700)
committerRyan Dahl <ry@tinyclouds.org>
Sat, 1 May 2010 00:36:21 +0000 (17:36 -0700)
src/node_buffer.cc

index 62c667b..d757b96 100644 (file)
@@ -262,17 +262,17 @@ Handle<Value> Buffer::Copy(const Arguments &args) {
             "sourceEnd < sourceStart")));
   }
 
-  if (target_start >= target->length()) {
+  if (target_start < 0 || target_start > target->length()) {
     return ThrowException(Exception::Error(String::New(
             "targetStart out of bounds")));
   }
 
-  if (source_start >= source->length()) {
+  if (source_start < 0 || source_start > source->length()) {
     return ThrowException(Exception::Error(String::New(
             "sourceStart out of bounds")));
   }
 
-  if (source_end > source->length()) {
+  if (source_end < 0 || source_end > source->length()) {
     return ThrowException(Exception::Error(String::New(
             "sourceEnd out of bounds")));
   }