Hi there. Sorry if this issue has been already addressed - I did not find anything.
It seems that there are bugs in 1.15.91 version in incremen.c: function try_purge_directory 1) uninitialized variable stract stat st, as was correctly pointed by Kurt Roeckx on tar debian bug page. 2) wrong file type check in || (*entry == 'D' && S_ISDIR (st.st_mode)) || (*entry == 'Y' && !S_ISDIR (st.st_mode))) I made a patch that fixes these problems. Regards, Vladimir. P.S The attached script fails on my i386 and amd64 machines. See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=377330 for more information.
--- tar-1.15.91/src/incremen.c 2006-06-08 14:28:16.000000000 +0300
+++ tar-1.15.91-mod/src/incremen.c 2006-09-07 09:06:07.000000000 +0300
@@ -1299,10 +1299,6 @@ try_purge_directory (char const *directo
free (p);
p = new_name (directory_name, cur);
- if (!(entry = dumpdir_locate (current_stat_info.dumpdir, cur))
- || (*entry == 'D' && S_ISDIR (st.st_mode))
- || (*entry == 'Y' && !S_ISDIR (st.st_mode)))
- {
if (deref_stat (false, p, &st))
{
if (errno != ENOENT) /* FIXME: Maybe keep a list of renamed
@@ -1321,6 +1317,10 @@ try_purge_directory (char const *directo
quotearg_colon (p)));
continue;
}
+ if (!(entry = dumpdir_locate (current_stat_info.dumpdir, cur))
+ || (*entry == 'D' && !S_ISDIR (st.st_mode))
+ || (*entry == 'Y' && S_ISDIR (st.st_mode)))
+ {
if (! interactive_option || confirm ("delete", p))
{
sss
Description: Binary data
_______________________________________________ Bug-tar mailing list [email protected] http://lists.gnu.org/mailman/listinfo/bug-tar
