fix iobuf shrink to less than current len

This commit is contained in:
Sergio R. Caprile
2025-09-26 14:34:17 -03:00
parent 2c5a6d4df6
commit d55fb80746
3 changed files with 4 additions and 0 deletions
+1
View File
@@ -2608,6 +2608,7 @@ int mg_iobuf_resize(struct mg_iobuf *io, size_t new_size) {
mg_free(io->buf);
io->buf = (unsigned char *) p;
io->size = new_size;
io->len = len;
} else {
ok = 0;
MG_ERROR(("%lld->%lld", (uint64_t) io->size, (uint64_t) new_size));
+1
View File
@@ -25,6 +25,7 @@ int mg_iobuf_resize(struct mg_iobuf *io, size_t new_size) {
mg_free(io->buf);
io->buf = (unsigned char *) p;
io->size = new_size;
io->len = len;
} else {
ok = 0;
MG_ERROR(("%lld->%lld", (uint64_t) io->size, (uint64_t) new_size));
+2
View File
@@ -322,6 +322,8 @@ static void test_iobuf(void) {
mg_iobuf_add(&io, io.len, "a", 1);
ASSERT(io.buf != NULL && io.size == 20 && io.len == 11);
ASSERT(memcmp(io.buf, "xhi!123456a", io.len) == 0);
mg_iobuf_resize(&io, 1);
ASSERT(io.buf != NULL && io.size == 10 && io.len == 10);
mg_iobuf_free(&io);
}