details:   
https://github.com/nginx/njs/commit/6736121eba717407356c0a7e8ac7046c7744b7e6
branches:  master
commit:    6736121eba717407356c0a7e8ac7046c7744b7e6
user:      Vadim Zhestikov <v.zhesti...@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) {
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-devel

Reply via email to