]> git.kaiwu.me - njs.git/commitdiff
Fixed 1-byte memory over-read introduced in previous commit.
authorDmitry Volyntsev <xeioex@nginx.com>
Thu, 23 Dec 2021 14:28:12 +0000 (14:28 +0000)
committerDmitry Volyntsev <xeioex@nginx.com>
Thu, 23 Dec 2021 14:28:12 +0000 (14:28 +0000)
sizeof("\0") returns 2 because of the implicit zero byte added at
the end of string literals. Instead njs_length() was intended to be
used.

external/njs_fs.c

index d0cd4bf98b3b0415573a1050fca691dc70efab07..4333abeaa8c0d570ea8003f2629d952fe494a5a6 100644 (file)
@@ -2153,7 +2153,7 @@ njs_ftw(char *path, njs_file_tree_walk_cb_t cb, int fd_limit,
             }
 
             path[base] = '/';
-            memcpy(&path[base + 1], d_name, length + sizeof("\0"));
+            memcpy(&path[base + 1], d_name, length + njs_length("\0"));
 
             if (fd_limit != 0) {
                 ret = njs_ftw(path, cb, fd_limit - 1, flags, &trace);