rsync-2.5.4:backup.c possible bug

Mike Rubel mrubel at
Wed Mar 27 17:46:47 EST 2002


I suspect a minor bug in the file rsync-2.5.4/backup.c line 206.
To identify too-long pathnames, it makes the following test:

if (strlen(backup_dir) + strlen(fname) > (MAXPATHLEN - 1))

I think that the constant subtracted off should be 2, to account both for
the forward-slash and for the trailing zero in the following snprintf
statement, line 211:

snprintf(keep_name, sizeof (keep_name), "%s/%s", backup_dir, fname);

Notice that (line 178) keep_name is an array of MAXPATHLEN characters.

Another (perhaps more logical) possible fix would be to make keep_name
MAXPATHLEN+1 characters long.  It depends whether MAXPATHLEN was intended
to count the trailing zero or not.  On my linux machine, MAXPATHLEN is
4095, so I assume that it was not.

I sent this to the web bug-submission form about a week and a half ago,
but haven't heard anything since then, so I'm forwarding it on to the list
here.  Please let me know if there's a more appropriate place to send


More information about the rsync mailing list