]> Sergey Matveev's repositories - nnn.git/commitdiff
Fix #301 - use local buffer to avoid overwriting g_buf
authorArun Prakash Jana <engineerarun@gmail.com>
Thu, 25 Jul 2019 14:25:55 +0000 (19:55 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Thu, 25 Jul 2019 14:32:54 +0000 (20:02 +0530)
src/nnn.c

index 2142dfc8bb14f649339dee4377d5a01963944d8c..6f6f588f2960ce236b9c8d6db8f8fca0967c0928 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -1265,14 +1265,16 @@ finish:
 
 static void archive_selection(const char *cmd, const char *archive, const char *curpath)
 {
-       snprintf(g_buf, CMD_LEN_MAX,
+       char *buf = (char *)malloc(CMD_LEN_MAX * sizeof(char));
+       snprintf(buf, CMD_LEN_MAX,
 #ifdef __linux__
                 "xargs -0 -a %s %s %s",
 #else
                 "cat %s | xargs -0 -o %s %s",
 #endif
                 g_cppath, cmd, archive);
-       spawn("sh", "-c", g_buf, curpath, F_NORMAL);
+       spawn("sh", "-c", buf, curpath, F_NORMAL);
+       free(buf);
 }
 
 static bool write_lastdir(const char *curpath)