mirror of
https://github.com/cesanta/mongoose.git
synced 2026-11-07 16:01:30 +00:00
fix iobuf shrink to less than current len
This commit is contained in:
1 parent
2c5a6d4df6
commit
d55fb80746
3 files changed
+4
No files matched your search
@@ -2608,6 +2608,7 @@ int mg_iobuf_resize(struct mg_iobuf *io, size_t new_size) {
|
|||||||
mg_free(io->buf);
|
mg_free(io->buf);
|
||||||
io->buf = (unsigned char *) p;
|
io->buf = (unsigned char *) p;
|
||||||
io->size = new_size;
|
io->size = new_size;
|
||||||
|
io->len = len;
|
||||||
} else {
|
} else {
|
||||||
ok = 0;
|
ok = 0;
|
||||||
MG_ERROR(("%lld->%lld", (uint64_t) io->size, (uint64_t) new_size));
|
MG_ERROR(("%lld->%lld", (uint64_t) io->size, (uint64_t) new_size));
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ int mg_iobuf_resize(struct mg_iobuf *io, size_t new_size) {
|
|||||||
mg_free(io->buf);
|
mg_free(io->buf);
|
||||||
io->buf = (unsigned char *) p;
|
io->buf = (unsigned char *) p;
|
||||||
io->size = new_size;
|
io->size = new_size;
|
||||||
|
io->len = len;
|
||||||
} else {
|
} else {
|
||||||
ok = 0;
|
ok = 0;
|
||||||
MG_ERROR(("%lld->%lld", (uint64_t) io->size, (uint64_t) new_size));
|
MG_ERROR(("%lld->%lld", (uint64_t) io->size, (uint64_t) new_size));
|
||||||
|
|||||||
@@ -322,6 +322,8 @@ static void test_iobuf(void) {
|
|||||||
mg_iobuf_add(&io, io.len, "a", 1);
|
mg_iobuf_add(&io, io.len, "a", 1);
|
||||||
ASSERT(io.buf != NULL && io.size == 20 && io.len == 11);
|
ASSERT(io.buf != NULL && io.size == 20 && io.len == 11);
|
||||||
ASSERT(memcmp(io.buf, "xhi!123456a", io.len) == 0);
|
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);
|
mg_iobuf_free(&io);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user