From 771483da3e60545a4d2da02ea843774822f1d315 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Mon, 30 May 2022 16:25:16 +0200 Subject: [PATCH] MINOR: htx: add an unchecked version of htx_get_head_blk() htx_get_head_blk() is used at plenty of places, many of which are known to be safe, but the function checks for the presence of a first block and returns NULL if it doesn't exist. While it's properly used, it makes compilers complain at -Os on stream.c and mux_fcgi.c because they probably don't propagate variables far enough to see that there's no risk. Let's add an unchecked version for these use cases. --- include/haproxy/htx.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/haproxy/htx.h b/include/haproxy/htx.h index c74d0db26..0fd1a1b97 100644 --- a/include/haproxy/htx.h +++ b/include/haproxy/htx.h @@ -189,6 +189,16 @@ static inline struct htx_blk *htx_get_head_blk(const struct htx *htx) return ((head == -1) ? NULL : htx_get_blk(htx, head)); } +/* same as above but unchecked, may only be used when certain that a block + * exists. + */ +static inline struct htx_blk *__htx_get_head_blk(const struct htx *htx) +{ + int32_t head = htx_get_head(htx); + + return htx_get_blk(htx, head); +} + /* Returns the type of the oldest HTX block (head) if the HTX message is not * empty. Otherwise it returns HTX_BLK_UNUSED. */