|
@@ -371,7 +371,10 @@ diff_dumpdir (struct tar_stat_info *dir)
|
|
|
if (fd < 0)
|
|
|
diag = open_diag;
|
|
|
else if (fstat (fd, &dir->stat))
|
|
|
- diag = stat_diag;
|
|
|
+ {
|
|
|
+ diag = stat_diag;
|
|
|
+ close (fd);
|
|
|
+ }
|
|
|
else
|
|
|
dir->fd = fd;
|
|
|
if (diag)
|
|
@@ -439,10 +442,9 @@ diff_multivol (void)
|
|
|
{
|
|
|
seek_error_details (current_stat_info.file_name, offset);
|
|
|
report_difference (¤t_stat_info, NULL);
|
|
|
- return;
|
|
|
}
|
|
|
-
|
|
|
- read_and_process (¤t_stat_info, process_rawdata);
|
|
|
+ else
|
|
|
+ read_and_process (¤t_stat_info, process_rawdata);
|
|
|
|
|
|
status = close (fd);
|
|
|
if (status != 0)
|