]> git.kaiwu.me - njs.git/commitdiff
Fixed heap-buffer-overflow while importing module.
authorDmitry Volyntsev <xeioex@nginx.com>
Wed, 3 Jul 2019 15:30:59 +0000 (18:30 +0300)
committerDmitry Volyntsev <xeioex@nginx.com>
Wed, 3 Jul 2019 15:30:59 +0000 (18:30 +0300)
This closes #187 issue on Github.

njs/njs_module.c

index a012604c8df5addd113f19580b58a44c7ad05714..ccfb39a410a653c4428fe34911817c2e2176619f 100644 (file)
@@ -341,13 +341,12 @@ njs_module_read(njs_vm_t *vm, int fd, nxt_str_t *text)
         goto fail;
     }
 
-    text->length = nxt_length(NJS_MODULE_START);
-
-    if (S_ISREG(sb.st_mode) && sb.st_size) {
-        text->length += sb.st_size;
+    if (!S_ISREG(sb.st_mode)) {
+        goto fail;
     }
 
-    text->length += nxt_length(NJS_MODULE_END);
+    text->length = nxt_length(NJS_MODULE_START) + sb.st_size
+                   + nxt_length(NJS_MODULE_END);
 
     text->start = nxt_mp_alloc(vm->mem_pool, text->length);
     if (text->start == NULL) {