From 4e8fb7dc93d296fc8eae7ab38c193fedf7f9a24e Mon Sep 17 00:00:00 2001
From: Eugine Blikh <bigbes@gmail.com>
Date: Thu, 21 Nov 2013 17:27:20 +0400
Subject: [PATCH] Move to safely analogs of functions

---
 client/tarantar/main.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/client/tarantar/main.c b/client/tarantar/main.c
index bdcbd78eb6..e552a74ba1 100644
--- a/client/tarantar/main.c
+++ b/client/tarantar/main.c
@@ -141,13 +141,13 @@ int main(int argc, char *argv[])
 		return 1;
 	}
 
-	char cur_dir_snap[2*PATH_MAX], cur_dir_wal[2*PATH_MAX];
+	char cur_dir_snap[PATH_MAX], cur_dir_wal[PATH_MAX];
 	tss.snap_dir = cur_dir_snap;
 	tss.wal_dir  = cur_dir_wal;
 
 	if (tss.opts.cfg.work_dir != NULL) {
-		strcpy((char *)tss.snap_dir, tss.opts.cfg.work_dir);
-		strcpy((char *)tss.wal_dir, tss.opts.cfg.work_dir);
+		strncpy((char *)tss.snap_dir, tss.opts.cfg.work_dir, PATH_MAX);
+		strncpy((char *)tss.wal_dir, tss.opts.cfg.work_dir, PATH_MAX);
 	} else {
 		getcwd((char *)tss.snap_dir, PATH_MAX);
 		getcwd((char *)tss.wal_dir, PATH_MAX);
@@ -156,13 +156,15 @@ int main(int argc, char *argv[])
 		if (tss.opts.cfg.snap_dir[0] == '/')
 			tss.snap_dir = tss.opts.cfg.snap_dir;
 		else
-			strcat((char *)tss.snap_dir, tss.opts.cfg.snap_dir);
+			strncat((char *)tss.snap_dir, tss.opts.cfg.snap_dir,
+				PATH_MAX);
 	}
 	if (tss.opts.cfg.wal_dir != NULL) {
 		if (tss.opts.cfg.wal_dir[0] == '/')
 			tss.wal_dir = tss.opts.cfg.wal_dir;
 		else
-			strcat((char *)tss.wal_dir, tss.opts.cfg.wal_dir);
+			strncat((char *)tss.wal_dir, tss.opts.cfg.wal_dir,
+				PATH_MAX);
 	}
 	/* create spaces */
 	rc = ts_space_init(&tss.s);
-- 
GitLab