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