[njs] Fixed handling of detached buffer for typed arrays.
noreply at nginx.com
noreply at nginx.com
Fri Jun 13 19:58:02 UTC 2025
details: https://github.com/nginx/njs/commit/d5bcd36d321fb578ffd1c804ec2d206c3b3e945e
branches: master
commit: d5bcd36d321fb578ffd1c804ec2d206c3b3e945e
user: Dmitry Volyntsev <xeioex at nginx.com>
date: Thu, 12 Jun 2025 17:20:07 -0700
description:
Fixed handling of detached buffer for typed arrays.
---
src/njs_typed_array.c | 5 +++++
src/njs_value.c | 4 ++--
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/njs_typed_array.c b/src/njs_typed_array.c
index f886dca6..d7ca2e83 100644
--- a/src/njs_typed_array.c
+++ b/src/njs_typed_array.c
@@ -655,6 +655,11 @@ njs_typed_array_set_value(njs_vm_t *vm, njs_typed_array_t *array,
return ret;
}
+ buffer = njs_typed_array_buffer(array);
+ if (njs_slow_path(njs_is_detached_buffer(buffer))) {
+ return NJS_OK;
+ }
+
buffer = njs_typed_array_writable(vm, array);
if (njs_slow_path(buffer == NULL)) {
return NJS_ERROR;
diff --git a/src/njs_value.c b/src/njs_value.c
index 86fb6444..0c616a37 100644
--- a/src/njs_value.c
+++ b/src/njs_value.c
@@ -1019,8 +1019,7 @@ njs_value_property(njs_vm_t *vm, njs_value_t *value, uint32_t atom_id,
tarray = njs_typed_array(value);
if (njs_slow_path(njs_is_detached_buffer(tarray->buffer))) {
- njs_type_error(vm, "detached buffer");
- return NJS_ERROR;
+ goto not_found;
}
if (njs_slow_path(index >= njs_typed_array_length(tarray))) {
@@ -1109,6 +1108,7 @@ slow_path:
break;
case NJS_DECLINED:
+not_found:
njs_set_undefined(retval);
return NJS_DECLINED;
More information about the nginx-devel
mailing list