From: Christopher Faulet Date: Mon, 26 Nov 2018 14:02:30 +0000 (+0100) Subject: BUG/MINOR: htx: Fix block size calculation when a start-line is added/replaced X-Git-Tag: v1.9-dev9~92 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=53ad16a0ef0fd0ea3dc6ab6ba1e7bdeb198beb86;p=thirdparty%2Fhaproxy.git BUG/MINOR: htx: Fix block size calculation when a start-line is added/replaced What we store in the buffer is a union htx_sl, not an h1_sl, so the computed size was not correct. --- diff --git a/src/htx.c b/src/htx.c index 23ac611332..f042143185 100644 --- a/src/htx.c +++ b/src/htx.c @@ -617,7 +617,7 @@ struct htx_blk *htx_replace_reqline(struct htx *htx, struct htx_blk *blk, if (type != HTX_BLK_REQ_SL) return NULL; - size = sizeof(sl) + sl.rq.m.len + sl.rq.u.len + sl.rq.v.len; + size = sizeof(union htx_sl) + sl.rq.m.len + sl.rq.u.len + sl.rq.v.len; blk = htx_new_blk_value(htx, blk, size); if (!blk) return NULL; @@ -640,7 +640,7 @@ struct htx_blk *htx_replace_resline(struct htx *htx, struct htx_blk *blk, if (type != HTX_BLK_RES_SL) return NULL; - size = sizeof(sl) + sl.rq.m.len + sl.rq.u.len + sl.rq.v.len; + size = sizeof(union htx_sl) + sl.rq.m.len + sl.rq.u.len + sl.rq.v.len; blk = htx_new_blk_value(htx, blk, size); if (!blk) return NULL; @@ -659,7 +659,7 @@ struct htx_blk *htx_add_reqline(struct htx *htx, const union h1_sl sl) struct htx_blk *blk; uint32_t size; - size = sizeof(sl) + sl.rq.m.len + sl.rq.u.len + sl.rq.v.len; + size = sizeof(union htx_sl) + sl.rq.m.len + sl.rq.u.len + sl.rq.v.len; /* FIXME: check size (< 256MB) */ blk = htx_add_blk(htx, HTX_BLK_REQ_SL, size); @@ -679,7 +679,7 @@ struct htx_blk *htx_add_resline(struct htx *htx, const union h1_sl sl) struct htx_blk *blk; uint32_t size; - size = sizeof(sl) + sl.st.v.len + sl.st.c.len + sl.st.r.len; + size = sizeof(union htx_sl) + sl.st.v.len + sl.st.c.len + sl.st.r.len; /* FIXME: check size (< 256MB) */ blk = htx_add_blk(htx, HTX_BLK_RES_SL, size);