X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/6fb7cc38a2f01d8e4ce0e2e1aa79ed31e2cfa9f8..25f637a334a39448d0ffcdcf20d9917472db8d97:/log.c diff --git a/log.c b/log.c index 1c577efb..9824de74 100644 --- a/log.c +++ b/log.c @@ -90,7 +90,6 @@ struct { { 0, NULL } }; - /* * Map from rsync error code to name, or return NULL. */ @@ -386,7 +385,7 @@ void rsyserr(enum logcode code, int errcode, const char *format, ...) char buf[BIGPATHBUFLEN]; size_t len; - strcpy(buf, RSYNC_NAME ": "); + strlcpy(buf, RSYNC_NAME ": ", sizeof buf); len = (sizeof RSYNC_NAME ": ") - 1; va_start(ap, format); @@ -515,18 +514,16 @@ static void log_formatted(enum logcode code, char *format, char *op, strlcpy(n, buf2, MAXPATHLEN); else n = buf2; - } else { - if (*n != '/') { - pathjoin(buf2, sizeof buf2, - curr_dir + module_dirlen, n); - clean_fname(buf2, 0); - if (fmt[1]) - strlcpy(n, buf2, MAXPATHLEN); - else - n = buf2; - } else - clean_fname(n, 0); - } + } else if (*n != '/') { + pathjoin(buf2, sizeof buf2, + curr_dir + module_dirlen, n); + clean_fname(buf2, 0); + if (fmt[1]) + strlcpy(n, buf2, MAXPATHLEN); + else + n = buf2; + } else + clean_fname(n, 0); if (*n == '/') n++; break; @@ -538,15 +535,15 @@ static void log_formatted(enum logcode code, char *format, char *op, case 'L': if (hlink && *hlink) { n = hlink; - strcpy(buf2, " => "); + strlcpy(buf2, " => ", sizeof buf2); } else if (S_ISLNK(file->mode) && file->u.link) { n = file->u.link; - strcpy(buf2, " -> "); + strlcpy(buf2, " -> ", sizeof buf2); } else { n = ""; if (!fmt[1]) break; - strcpy(buf2, " "); + strlcpy(buf2, " ", sizeof buf2); } strlcat(fmt, "s", sizeof fmt); snprintf(buf2 + 4, sizeof buf2 - 4, fmt, n);