restore: don't corrupt stack for a zero-length command-line argument

Given a zero-length directory name, the trailing-slash removal
code would test dir_name[-1], and if it were found to be a slash,
would set it to '\0'.

Reviewed-by: Josef Bacik <josef@redhat.com>
master
Jim Meyering 2012-04-20 21:27:24 +02:00 committed by Hugo Mills
parent 6fc24e4a70
commit 47f029cc8b
1 changed files with 3 additions and 5 deletions

View File

@ -849,11 +849,9 @@ int main(int argc, char **argv)
strncpy(dir_name, argv[optind + 1], 128);
/* Strip the trailing / on the dir name */
while (1) {
len = strlen(dir_name);
if (dir_name[len - 1] != '/')
break;
dir_name[len - 1] = '\0';
len = strlen(dir_name);
while (len && dir_name[--len] == '/') {
dir_name[len] = '\0';
}
if (find_dir) {