aboutsummaryrefslogtreecommitdiffstats
path: root/src/nnn.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nnn.c')
-rw-r--r--src/nnn.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/nnn.c b/src/nnn.c
index 97a18ff..79f4f07 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -1038,6 +1038,7 @@ static char *abspath(const char *path, const char *cwd)
return NULL;
size_t dst_size = 0, src_size = xstrlen(path), cwd_size = xstrlen(cwd);
+ size_t len = src_size;
const char *src;
char *dst;
/*
@@ -1058,7 +1059,7 @@ static char *abspath(const char *path, const char *cwd)
src = path;
dst = resolved_path + dst_size;
for (const char *next = NULL; next != path + src_size;) {
- next = strchr(src, '/');
+ next = memchr(src, '/', len);
if (!next)
next = path + src_size;
@@ -1076,6 +1077,7 @@ static char *abspath(const char *path, const char *cwd)
}
src = next + 1;
+ len = src_size - (src - path);
}
if (*resolved_path == '\0') {