mirror of
https://github.com/jarun/nnn.git
synced 2025-01-26 02:36:36 +00:00
Fix #786: memccpy() detects buffer overlap on macOS
This commit is contained in:
parent
8735f11c58
commit
a443a321ef
10
src/nnn.c
10
src/nnn.c
|
@ -1016,6 +1016,8 @@ static inline bool getutil(char *util)
|
||||||
/*
|
/*
|
||||||
* Updates out with "dir/name or "/name"
|
* Updates out with "dir/name or "/name"
|
||||||
* Returns the number of bytes copied including the terminating NULL byte
|
* Returns the number of bytes copied including the terminating NULL byte
|
||||||
|
*
|
||||||
|
* Note: dir and out must be PATH_MAX in length to avoid macOS fault
|
||||||
*/
|
*/
|
||||||
static size_t mkpath(const char *dir, const char *name, char *out)
|
static size_t mkpath(const char *dir, const char *name, char *out)
|
||||||
{
|
{
|
||||||
|
@ -4710,10 +4712,14 @@ static bool run_cmd_as_plugin(const char *file, char *runfile, uchar flags)
|
||||||
|
|
||||||
static bool plctrl_init(void)
|
static bool plctrl_init(void)
|
||||||
{
|
{
|
||||||
snprintf(g_buf, CMD_LEN_MAX, "nnn-pipe.%d", getpid());
|
size_t len;
|
||||||
|
|
||||||
/* g_tmpfpath is used to generate tmp file names */
|
/* g_tmpfpath is used to generate tmp file names */
|
||||||
g_tmpfpath[tmpfplen - 1] = '\0';
|
g_tmpfpath[tmpfplen - 1] = '\0';
|
||||||
mkpath(g_tmpfpath, g_buf, g_pipepath);
|
len = xstrsncpy(g_pipepath, g_tmpfpath, TMP_LEN_MAX);
|
||||||
|
g_pipepath[len - 1] = '/';
|
||||||
|
len = xstrsncpy(g_pipepath + len, "nnn-pipe.", TMP_LEN_MAX - len) + len;
|
||||||
|
xstrsncpy(g_pipepath + len - 1, xitoa(getpid()), TMP_LEN_MAX - len);
|
||||||
setenv(env_cfg[NNN_PIPE], g_pipepath, TRUE);
|
setenv(env_cfg[NNN_PIPE], g_pipepath, TRUE);
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
|
|
Loading…
Reference in a new issue