From 2a3b8dad33d4921a210062101f92f5fe9e349ef0 Mon Sep 17 00:00:00 2001 From: Stefano Brivio Date: Tue, 5 Apr 2022 12:51:00 +0200 Subject: tcp, tcp_splice: False "Negative array index read" positives, CWE-129 A flag or event bit is always set by callers. Reported by Coverity. Signed-by-off: Stefano Brivio --- tcp.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'tcp.c') diff --git a/tcp.c b/tcp.c index 1820e19..13a108e 100644 --- a/tcp.c +++ b/tcp.c @@ -868,15 +868,19 @@ static void conn_flag_do(const struct ctx *c, struct tcp_conn *conn, return; conn->flags &= flag; - debug("TCP: index %li: %s dropped", conn - tc, - tcp_flag_str[fls(~flag)]); + if (fls(~flag) >= 0) { + debug("TCP: index %li: %s dropped", conn - tc, + tcp_flag_str[fls(~flag)]); + } } else { if (conn->flags & flag) return; conn->flags |= flag; - debug("TCP: index %li: %s", conn - tc, - tcp_flag_str[fls(flag)]); + if (fls(flag) >= 0) { + debug("TCP: index %li: %s", conn - tc, + tcp_flag_str[fls(flag)]); + } } if (flag == STALLED || flag == ~STALLED) -- cgit v1.2.3