X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/d4e0196346583433d7d0e809d950f10f6c77d8db..e66d70e34cd84c49e36c78920e33da5db72f82a8:/log.c diff --git a/log.c b/log.c index 905c64af..42ad4709 100644 --- a/log.c +++ b/log.c @@ -87,7 +87,7 @@ static char const *rerr_name(int code) return NULL; } -static void log_open(void) +void log_open(void) { if (logfname && !logfile) { extern int orig_umask; @@ -102,6 +102,14 @@ static void log_open(void) } } +void log_close(void) +{ + if (logfile) { + fclose(logfile); + logfile = NULL; + } +} + static void logit(int priority, char *buf) { if (logfname) { @@ -155,14 +163,6 @@ void log_init(void) #endif } -void log_close(void) -{ - if (logfile) { - fclose(logfile); - logfile = NULL; - } -} - /* this is the underlying (unformatted) rsync debugging function. Call * it with FINFO, FERROR or FLOG */ void rwrite(enum logcode code, char *buf, int len) @@ -343,7 +343,7 @@ static void log_formatted(enum logcode code, struct stats *initial_stats, int iflags) { char buf[MAXPATHLEN+1024]; - char buf2[1024]; + char buf2[MAXPATHLEN]; char *p, *n; size_t len, total; int64 b; @@ -380,6 +380,11 @@ static void log_formatted(enum logcode code, break; case 'n': n = (char*)safe_fname(f_name(file)); + if (S_ISDIR(file->mode)) { + /* The buffer from safe_fname() has more + * room than MAXPATHLEN, so this is safe. */ + strcat(n, "/"); + } break; case 'L': if (S_ISLNK(file->mode)) {