From: Willy Tarreau Date: Mon, 30 May 2022 14:25:16 +0000 (+0200) Subject: MINOR: htx: add an unchecked version of htx_get_head_blk() X-Git-Tag: v2.6.0~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=771483da3e60545a4d2da02ea843774822f1d315;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/include/haproxy/htx.h b/include/haproxy/htx.h index c74d0db268..0fd1a1b972 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. */