mirror of
https://github.com/jarun/nnn.git
synced 2024-11-24 11:51:27 +00:00
realpath allocates memory
This commit is contained in:
parent
5198c62863
commit
0d7d0ca7db
25
src/nnn.c
25
src/nnn.c
|
@ -2926,12 +2926,10 @@ static bool parsekvpair(kv **arr, char **envcpy, const uchar id, ushort *items)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
if (nextkey - ptr > 1) {
|
||||
--nextkey;
|
||||
if (nextkey - ptr > 1)
|
||||
/* Clear trailing ; or / */
|
||||
if (*nextkey == ';' || (*nextkey == '/' && *(nextkey - 1) != ':'))
|
||||
if (*--nextkey == ';')
|
||||
*(*envcpy + (nextkey - ptr)) = '\0';
|
||||
}
|
||||
|
||||
ptr = *envcpy;
|
||||
nextkey = ptr;
|
||||
|
@ -2950,10 +2948,6 @@ static bool parsekvpair(kv **arr, char **envcpy, const uchar id, ushort *items)
|
|||
}
|
||||
|
||||
if (*ptr == ';') {
|
||||
/* Remove trailing space */
|
||||
if (i > 0 && *(ptr - 1) == '/')
|
||||
*(ptr - 1) = '\0';
|
||||
|
||||
*ptr = '\0';
|
||||
nextkey = ptr + 1;
|
||||
}
|
||||
|
@ -2996,20 +2990,11 @@ static char *get_kv_val(kv *kvarr, char *buf, int key, uchar max, bool path)
|
|||
ssize_t len = strlen(home);
|
||||
ssize_t loclen = strlen(kvarr[r].val);
|
||||
|
||||
if (!buf) {
|
||||
buf = (char *)malloc(len + loclen);
|
||||
if (!buf) {
|
||||
DPRINTF_S(strerror(errno));
|
||||
return NULL;
|
||||
}
|
||||
xstrlcpy(g_buf, home, len + 1);
|
||||
xstrlcpy(g_buf + len, kvarr[r].val + 1, loclen);
|
||||
}
|
||||
|
||||
xstrlcpy(buf, home, len + 1);
|
||||
xstrlcpy(buf + len, kvarr[r].val + 1, loclen);
|
||||
return buf;
|
||||
}
|
||||
|
||||
return realpath(kvarr[r].val, buf);
|
||||
return realpath(((kvarr[r].val[0] == '~') ? g_buf : kvarr[r].val), buf);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue