1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-07-07 00:35:37 +02:00

Reduce buffer used when size limit set.

If the size is reduced then the amount used should be reduced as well.

This is a bug but does not affect current use cases.
This commit is contained in:
David Steele
2020-10-07 18:02:05 -04:00
parent 39aca3269c
commit 099281c510
2 changed files with 6 additions and 0 deletions

View File

@ -299,6 +299,10 @@ bufLimitSet(Buffer *this, size_t limit)
this->size = limit; this->size = limit;
this->sizeLimit = true; this->sizeLimit = true;
// Reduce used if it is now larger than size
if (this->used > this->size)
this->used = this->size;
FUNCTION_TEST_RETURN_VOID(); FUNCTION_TEST_RETURN_VOID();
} }

View File

@ -94,8 +94,10 @@ testRun(void)
// Use limits to change size reporting // Use limits to change size reporting
TEST_RESULT_VOID(bufLimitSet(buffer, 64), "set limit"); TEST_RESULT_VOID(bufLimitSet(buffer, 64), "set limit");
TEST_RESULT_UINT(bufSize(buffer), 64, " check limited size"); TEST_RESULT_UINT(bufSize(buffer), 64, " check limited size");
TEST_RESULT_UINT(bufUsed(buffer), 64, " check used");
TEST_RESULT_VOID(bufLimitClear(buffer), " clear limit"); TEST_RESULT_VOID(bufLimitClear(buffer), " clear limit");
TEST_RESULT_UINT(bufSize(buffer), 128, " check unlimited size"); TEST_RESULT_UINT(bufSize(buffer), 128, " check unlimited size");
TEST_RESULT_UINT(bufUsed(buffer), 64, " check used did not change");
// Resize to zero buffer // Resize to zero buffer
TEST_RESULT_VOID(bufUsedZero(buffer), "set used to 0"); TEST_RESULT_VOID(bufUsedZero(buffer), "set used to 0");