Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/amachronic/microtar.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAidan MacDonald <amachronic@protonmail.com>2021-11-06 17:03:45 +0300
committerAidan MacDonald <amachronic@protonmail.com>2021-11-06 17:03:45 +0300
commit8e4b2750c0b43bc55d6ef1403b569e6ab6ac10c8 (patch)
tree8d332bf5d1df6b2cb68af693ac89ccedf35296fc
parentf5726a59e269aaabd45fca5e9b891d4ab8a4dc59 (diff)
Add API error checking to mtar_finalize()
-rw-r--r--src/microtar.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/microtar.c b/src/microtar.c
index e9a84ef..0653adb 100644
--- a/src/microtar.c
+++ b/src/microtar.c
@@ -579,8 +579,9 @@ int mtar_finalize(mtar_t* tar)
{
if(tar->access != MTAR_WRITE)
return MTAR_EAPI;
- if(tar->state & S_WROTE_FINALIZE)
- return MTAR_ESUCCESS;
+ if(((tar->state & S_WROTE_DATA) && !(tar->state & S_WROTE_DATA_EOF)) ||
+ (tar->state & S_WROTE_FINALIZE))
+ return MTAR_EAPI;
tar->state |= S_WROTE_FINALIZE;
return write_null_bytes(tar, 1024);