From: Willy Tarreau Date: Thu, 20 Sep 2018 09:11:15 +0000 (+0200) Subject: BUILD: stream: address null-deref build warnings at -Wextra X-Git-Tag: v1.9-dev3~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b8d42d02104aa5ecdfc58189bc02bf2359450d80;p=thirdparty%2Fhaproxy.git BUILD: stream: address null-deref build warnings at -Wextra These warnings are caused by the improper use of stktable_data_ptr() whose result is not checked instead of using __stktable_data_ptr(). --- diff --git a/src/stream.c b/src/stream.c index cc307453aa..b7eb5db747 100644 --- a/src/stream.c +++ b/src/stream.c @@ -1441,7 +1441,7 @@ static int process_sticking_rules(struct stream *s, struct channel *req, int an_ /* srv found in table */ HA_RWLOCK_RDLOCK(STK_SESS_LOCK, &ts->lock); - ptr = stktable_data_ptr(rule->table.t, ts, STKTABLE_DT_SERVER_ID); + ptr = __stktable_data_ptr(rule->table.t, ts, STKTABLE_DT_SERVER_ID); node = eb32_lookup(&px->conf.used_server_id, stktable_data_cast(ptr, server_id)); HA_RWLOCK_RDUNLOCK(STK_SESS_LOCK, &ts->lock); if (node) { @@ -1568,8 +1568,8 @@ static int process_store_rules(struct stream *s, struct channel *rep, int an_bit s->store[i].ts = NULL; HA_RWLOCK_WRLOCK(STK_SESS_LOCK, &ts->lock); - ptr = stktable_data_ptr(s->store[i].table, ts, STKTABLE_DT_SERVER_ID); - stktable_data_cast(ptr, server_id) = objt_server(s->target)->puid; + ptr = __stktable_data_ptr(s->store[i].table, ts, STKTABLE_DT_SERVER_ID); + stktable_data_cast(ptr, server_id) = __objt_server(s->target)->puid; HA_RWLOCK_WRUNLOCK(STK_SESS_LOCK, &ts->lock); stktable_touch_local(s->store[i].table, ts, 1); }