diff --git a/client/tarantar/main.c b/client/tarantar/main.c index bdcbd78eb624efe694857b3b13adfb98e0302561..e552a74ba1cf51b15df324beeed0c1e6da4e0904 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);