summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2023-02-21 13:57:36 +0200
committerSergey Poznyakoff <gray@gnu.org>2023-02-21 14:00:32 +0200
commit4177c98bcc4ce4c89e50ff7d60d3e5662754b140 (patch)
tree63323cfcd93b1853f48986f78f58a7ef5676fbb5 /src
parent5e8a915b16c5f06d2a16d98cdc2af666199caabb (diff)
downloadtar-4177c98bcc4ce4c89e50ff7d60d3e5662754b140.tar.gz
Detect EOF when deleting from archive.
See https://savannah.gnu.org/bugs/?63823 * src/delete.c (flush_file): Break the loop on EOF. * tests/delete06.at: New test. * tests/Makefile.am: Add new test. * tests/testsuite.at: Likewise.
Diffstat (limited to 'src')
-rw-r--r--src/delete.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/delete.c b/src/delete.c
index 728af735..fe89eb6e 100644
--- a/src/delete.c
+++ b/src/delete.c
@@ -149,6 +149,9 @@ flush_file (void)
{
blocks_to_skip -= (record_end - current_block);
flush_archive ();
+ if (record_end == current_block)
+ /* Hit EOF */
+ break;
}
current_block += blocks_to_skip;
}