[njs] QuickJS: added error checks in modules initialization.
noreply at nginx.com
noreply at nginx.com
Wed Mar 19 03:17:02 UTC 2025
details: https://github.com/nginx/njs/commit/6736121eba717407356c0a7e8ac7046c7744b7e6
branches: master
commit: 6736121eba717407356c0a7e8ac7046c7744b7e6
user: Vadim Zhestikov <v.zhestikov at f5.com>
date: Tue, 18 Mar 2025 10:40:24 -0700
description:
QuickJS: added error checks in modules initialization.
---
external/qjs_fs_module.c | 9 ++++++++-
external/qjs_query_string_module.c | 5 ++++-
external/qjs_webcrypto_module.c | 9 ++++++++-
external/qjs_zlib_module.c | 9 ++++++++-
src/qjs_buffer.c | 9 ++++++++-
5 files changed, 36 insertions(+), 5 deletions(-)
diff --git a/external/qjs_fs_module.c b/external/qjs_fs_module.c
index 9d1f7687..b09d1dcd 100644
--- a/external/qjs_fs_module.c
+++ b/external/qjs_fs_module.c
@@ -2960,6 +2960,10 @@ qjs_fs_module_init(JSContext *cx, JSModuleDef *m)
JSValue proto;
proto = JS_NewObject(cx);
+ if (JS_IsException(proto)) {
+ return -1;
+ }
+
JS_SetPropertyFunctionList(cx, proto, qjs_fs_export,
njs_nitems(qjs_fs_export));
@@ -3031,7 +3035,10 @@ qjs_fs_init(JSContext *cx, const char *name)
return NULL;
}
- JS_AddModuleExport(cx, m, "default");
+ if (JS_AddModuleExport(cx, m, "default") < 0) {
+ return NULL;
+ }
+
rc = JS_AddModuleExportList(cx, m, qjs_fs_export,
njs_nitems(qjs_fs_export));
if (rc != 0) {
diff --git a/external/qjs_query_string_module.c b/external/qjs_query_string_module.c
index 85d2fcb3..3059ee1b 100644
--- a/external/qjs_query_string_module.c
+++ b/external/qjs_query_string_module.c
@@ -998,7 +998,10 @@ qjs_querystring_init(JSContext *ctx, const char *name)
return NULL;
}
- JS_AddModuleExport(ctx, m, "default");
+ if (JS_AddModuleExport(ctx, m, "default") < 0) {
+ return NULL;
+ }
+
rc = JS_AddModuleExportList(ctx, m, qjs_querystring_export,
njs_nitems(qjs_querystring_export));
if (rc != 0) {
diff --git a/external/qjs_webcrypto_module.c b/external/qjs_webcrypto_module.c
index a1983651..9552ca12 100644
--- a/external/qjs_webcrypto_module.c
+++ b/external/qjs_webcrypto_module.c
@@ -4775,6 +4775,10 @@ qjs_webcrypto_module_init(JSContext *cx, JSModuleDef *m)
JSValue proto;
proto = JS_NewObject(cx);
+ if (JS_IsException(proto)) {
+ return -1;
+ }
+
JS_SetPropertyFunctionList(cx, proto, qjs_webcrypto_export,
njs_nitems(qjs_webcrypto_export));
@@ -4833,7 +4837,10 @@ qjs_webcrypto_init(JSContext *cx, const char *name)
return NULL;
}
- JS_AddModuleExport(cx, m, "default");
+ if (JS_AddModuleExport(cx, m, "default") < 0) {
+ return NULL;
+ }
+
rc = JS_AddModuleExportList(cx, m, qjs_webcrypto_export,
njs_nitems(qjs_webcrypto_export));
if (rc != 0) {
diff --git a/external/qjs_zlib_module.c b/external/qjs_zlib_module.c
index 2d3b2d92..5abf108a 100644
--- a/external/qjs_zlib_module.c
+++ b/external/qjs_zlib_module.c
@@ -463,6 +463,10 @@ qjs_zlib_module_init(JSContext *ctx, JSModuleDef *m)
JSValue proto;
proto = JS_NewObject(ctx);
+ if (JS_IsException(proto)) {
+ return -1;
+ }
+
JS_SetPropertyFunctionList(ctx, proto, qjs_zlib_export,
njs_nitems(qjs_zlib_export));
@@ -487,7 +491,10 @@ qjs_zlib_init(JSContext *ctx, const char *name)
return NULL;
}
- JS_AddModuleExport(ctx, m, "default");
+ if (JS_AddModuleExport(ctx, m, "default") < 0) {
+ return NULL;
+ }
+
rc = JS_AddModuleExportList(ctx, m, qjs_zlib_export,
njs_nitems(qjs_zlib_export));
if (rc != 0) {
diff --git a/src/qjs_buffer.c b/src/qjs_buffer.c
index 638d273c..dfe7b04d 100644
--- a/src/qjs_buffer.c
+++ b/src/qjs_buffer.c
@@ -2550,6 +2550,10 @@ qjs_buffer_module_init(JSContext *ctx, JSModuleDef *m)
JSValue proto;
proto = JS_NewObject(ctx);
+ if (JS_IsException(proto)) {
+ return -1;
+ }
+
JS_SetPropertyFunctionList(ctx, proto, qjs_buffer_export,
njs_nitems(qjs_buffer_export));
@@ -2576,7 +2580,10 @@ qjs_buffer_init(JSContext *ctx, const char *name)
return NULL;
}
- JS_AddModuleExport(ctx, m, "default");
+ if (JS_AddModuleExport(ctx, m, "default") < 0) {
+ return NULL;
+ }
+
rc = JS_AddModuleExportList(ctx, m, qjs_buffer_export,
njs_nitems(qjs_buffer_export));
if (rc != 0) {
More information about the nginx-devel
mailing list