]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
CLEANUP: stats: Avoid computation with uninitialized bits.
authorAndreas Seltenreich <andreas.seltenreich@credativ.de>
Thu, 3 Mar 2016 18:32:25 +0000 (19:32 +0100)
committerWilly Tarreau <w@1wt.eu>
Tue, 8 Mar 2016 11:55:06 +0000 (12:55 +0100)
stats_map_lookup() sets bit SMP_F_CONST in the uninitialized member
flags of a stack-allocated sample, leaving the other bits
uninitialized.  All code paths that can access the struct only ever
check for this specific flag, so there is no risk of unintended
behavior.

Nevertheless fix it as it triggers warnings in static code analysis
tools and might become a problem on future revisions of the code.

Problem found in version 1.5.

src/dumpstats.c

index 0ffbd5ac0116746cf25120a54101a5da12c646be..fd35fe319c20fda7fff8392df79e988a679cc158 100644 (file)
@@ -5858,7 +5858,7 @@ static int stats_map_lookup(struct stream_interface *si)
 
                        /* execute pattern matching */
                        sample.data.type = SMP_T_STR;
-                       sample.flags |= SMP_F_CONST;
+                       sample.flags = SMP_F_CONST;
                        sample.data.u.str.len = appctx->ctx.map.chunk.len;
                        sample.data.u.str.str = appctx->ctx.map.chunk.str;
                        if (appctx->ctx.map.expr->pat_head->match &&