Commit 1a6bc7c5 authored by Deomid Ryabkov's avatar Deomid Ryabkov Committed by Marko Mikulicic

Fix mbuf_resize(0)

    PUBLISHED_FROM=7cab7543db990f7f67b53edca4f65ba45b219711
parent ffa0ddfd
...@@ -143,11 +143,14 @@ void mbuf_free(struct mbuf *mbuf) { ...@@ -143,11 +143,14 @@ void mbuf_free(struct mbuf *mbuf) {
} }
void mbuf_resize(struct mbuf *a, size_t new_size) { void mbuf_resize(struct mbuf *a, size_t new_size) {
char *p; if (new_size > a->size || (new_size < a->size && new_size >= a->len)) {
if ((new_size > a->size || (new_size < a->size && new_size >= a->len)) && a->buf = (char *) MBUF_REALLOC(a->buf, new_size);
(p = (char *) MBUF_REALLOC(a->buf, new_size)) != NULL) { /*
a->size = new_size; * In case realloc fails, there's not much we can do except set size to 0.
a->buf = p; * Note that NULL is a valid return value from realloc when size == 0, but
* that is covered too.
*/
a->size = (a->buf != NULL ? new_size : 0);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment