From 2b2b79b968ec832f1092dce5d78d407244e0d0da Mon Sep 17 00:00:00 2001 From: saturneric Date: Thu, 18 Jan 2024 13:34:39 +0800 Subject: fix: correct a fault --- src/core/function/ArchiveFileOperator.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src/core/function/ArchiveFileOperator.cpp') diff --git a/src/core/function/ArchiveFileOperator.cpp b/src/core/function/ArchiveFileOperator.cpp index aad8b525..ef04d69f 100644 --- a/src/core/function/ArchiveFileOperator.cpp +++ b/src/core/function/ArchiveFileOperator.cpp @@ -160,19 +160,18 @@ void ArchiveFileOperator::NewArchive2DataExchanger( auto len = read(fd, buff.data(), buff.size()); assert(len <= buff.size() && len > 0); if (len == -1) { - GF_CORE_LOG_ERROR("read() failed, ret: {}, abort ...", r); + GF_CORE_LOG_ERROR("read() failed, ret: {}, abort ...", len); archive_entry_free(entry); close(fd); break; } + while (len > 0) { archive_write_data(archive, buff.data(), len); len = read(fd, buff.data(), buff.size()); assert(len <= buff.size() && len > 0); if (len == -1) { - GF_CORE_LOG_ERROR("read() failed, ret: {}, abort ...", r); - archive_entry_free(entry); - close(fd); + GF_CORE_LOG_ERROR("read() failed, ret: {}, abort ...", len); break; } } -- cgit v1.2.3