{ RERR_IPC , "error in IPC code" },
{ RERR_CRASHED , "sibling process crashed" },
{ RERR_TERMINATED , "sibling process terminated abnormally" },
- { RERR_SIGNAL , "received SIGINT, SIGTERM, SIGHUP, or SIGUSR1" },
+ { RERR_SIGNAL1 , "received SIGUSR1" },
+ { RERR_SIGNAL , "received SIGINT, SIGTERM, or SIGHUP" },
{ RERR_WAITCHILD , "waitpid() failed" },
{ RERR_MALLOC , "error allocating core memory buffers" },
{ RERR_PARTIAL , "some files could not be transferred" },
void rprintf(enum logcode code, const char *format, ...)
{
va_list ap;
- char buf[MAXPATHLEN+512];
+ char buf[BIGPATHBUFLEN];
size_t len;
va_start(ap, format);
* truncate the resulting string. (Note that configure ensures
* that we have a vsnprintf() that doesn't ever return -1.) */
if (len > sizeof buf - 1) {
- const char ellipsis[] = "[...]";
+ static const char ellipsis[] = "[...]";
/* Reset length, and zero-terminate the end of our buffer */
len = sizeof buf - 1;
* If the input format string has a trailing newline,
* we copy it into that extra null; if it doesn't, well,
* all we lose is one byte. */
- strncpy(buf+len-sizeof ellipsis, ellipsis, sizeof ellipsis);
+ memcpy(buf+len-sizeof ellipsis, ellipsis, sizeof ellipsis);
if (format[strlen(format)-1] == '\n') {
buf[len-1] = '\n';
}
void rsyserr(enum logcode code, int errcode, const char *format, ...)
{
va_list ap;
- char buf[MAXPATHLEN+512];
+ char buf[BIGPATHBUFLEN];
size_t len;
strcpy(buf, RSYNC_NAME ": ");
n = NULL;
switch (*p) {
- case 'h': if (am_daemon) n = client_name(0); break;
- case 'a': if (am_daemon) n = client_addr(0); break;
+ case 'h':
+ if (am_daemon)
+ n = client_name(0);
+ break;
+ case 'a':
+ if (am_daemon)
+ n = client_addr(0);
+ break;
case 'l':
strlcat(fmt, ".0f", sizeof fmt);
snprintf(buf2, sizeof buf2, fmt,
(long)getpid());
n = buf2;
break;
- case 'o': n = op; break;
+ case 'o':
+ n = op;
+ break;
case 'f':
- n = safe_fname(f_name(file));
+ n = f_name(file);
if (am_sender && file->dir.root) {
pathjoin(buf2, sizeof buf2,
file->dir.root, n);
- /* The buffer from safe_fname() has more
- * room than MAXPATHLEN, so this is safe. */
+ clean_fname(buf2, 0);
if (fmt[1])
- strcpy(n, buf2);
+ strlcpy(n, buf2, MAXPATHLEN);
else
n = buf2;
- }
- clean_fname(n, 0);
+ } else
+ clean_fname(n, 0);
if (*n == '/')
n++;
break;
case 'n':
- n = 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, "/");
- }
+ n = f_name(file);
+ if (S_ISDIR(file->mode))
+ strlcat(n, "/", MAXPATHLEN);
break;
case 'L':
if (hlink && *hlink) {
- n = safe_fname(hlink);
+ n = hlink;
strcpy(buf2, " => ");
} else if (S_ISLNK(file->mode) && file->u.link) {
- n = safe_fname(file->u.link);
+ n = file->u.link;
strcpy(buf2, " -> ");
} else {
n = "";
snprintf(buf2 + 4, sizeof buf2 - 4, fmt, n);
n = buf2;
break;
- case 'm': n = lp_name(module_id); break;
- case 't': n = timestring(time(NULL)); break;
- case 'P': n = lp_path(module_id); break;
- case 'u': n = auth_user; break;
+ case 'm':
+ n = lp_name(module_id);
+ break;
+ case 't':
+ n = timestring(time(NULL));
+ break;
+ case 'P':
+ n = lp_path(module_id);
+ break;
+ case 'u':
+ n = auth_user;
+ break;
case 'b':
if (am_sender) {
b = stats.total_written -