]> git.ipfire.org Git - thirdparty/haproxy.git/commit
CLEANUP: http: silence a cppcheck warning in get_http_auth()
authorWilly Tarreau <w@1wt.eu>
Wed, 2 Sep 2020 05:08:47 +0000 (07:08 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 2 Sep 2020 05:18:01 +0000 (07:18 +0200)
commit17254939c50707f06f2c248337990fc8e8d4d75b
tree81e6873716bca4456ced575333cbcd8d903ce5b0
parentd00ce06d9dfe3fd7cd277faf0d8da9ee21dd3765
CLEANUP: http: silence a cppcheck warning in get_http_auth()

In issue #777, cppcheck wrongly assumes a useless null pointer check
in the expression below while it's obvious that in a 3G/1G split on
32-bit, len can become positive if p is NULL:

     p = memchr(ctx.value.ptr, ' ', ctx.value.len);
     len = p - ctx.value.ptr;
     if (!p || len <= 0)
           return 0;

In addition, on 64 bits you never know given that len is a 32-bit signed
int thus the sign of the result in case of a null p will always be the
opposite of the 32th bit of ctx.value.ptr. Admittedly the test is ugly.

Tim proposed this fix consisting in checking for p == ctx.value.ptr
instead when checking for first character only, which Ilya confirmed is
enough to shut cppcheck up. No backport is needed.
src/http_fetch.c