]> git.kaiwu.me - njs.git/commitdiff
Improved array enumeration with length 0.
authorDmitry Volyntsev <xeioex@nginx.com>
Tue, 9 Jan 2024 00:40:42 +0000 (16:40 -0800)
committerDmitry Volyntsev <xeioex@nginx.com>
Tue, 9 Jan 2024 00:40:42 +0000 (16:40 -0800)
The fix eliminates an arithmetic operation with NULL pointer.

Found by UndefinedBehaviorSanitizer.

src/njs_object.c

index 4fab06e7132da608c4d157c9922b9e879a58094d..e89019587bfec8039033ea1c5f28864202211769 100644 (file)
@@ -591,7 +591,7 @@ njs_object_enumerate_array(njs_vm_t *vm, const njs_array_t *array,
     njs_value_t  *p, *start, *end;
     njs_array_t  *entry;
 
-    if (!array->object.fast_array) {
+    if (!array->object.fast_array || array->length == 0) {
         return NJS_OK;
     }