From: Stefano Brivio <sbrivio@redhat.com>
To: Laurent Vivier <lvivier@redhat.com>
Cc: passt-dev@passt.top
Subject: Re: [PATCH] ndp: Suppress Coverity false positive for random()
Date: Thu, 14 May 2026 01:08:26 +0200 (CEST) [thread overview]
Message-ID: <20260514010825.21c12443@elisabeth> (raw)
In-Reply-To: <20260513102617.1325915-1-lvivier@redhat.com>
On Wed, 13 May 2026 12:26:17 +0200
Laurent Vivier <lvivier@redhat.com> wrote:
> Coverity flags the random() call in ndp_timer() with the dont_call
> checker, warning that it should not be used for security-related
> applications.
>
> This is a false positive: random() is used here to jitter the interval
> between unsolicited Router Advertisements as required by RFC 4861, to
> prevent synchronisation between routers on a link. No cryptographic
> strength is needed.
>
> Suppress the warning with an inline Coverity annotation.
>
> Signed-off-by: Laurent Vivier <lvivier@redhat.com>
> ---
> ndp.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/ndp.c b/ndp.c
> index 1f2bcb0cc7ea..614932ac5829 100644
> --- a/ndp.c
> +++ b/ndp.c
> @@ -441,6 +441,7 @@ void ndp_timer(const struct ctx *c, const struct timespec *now)
> * again, it's close enough for our purposes.
> */
> interval = min_rtr_adv_interval +
> + /* coverity[dont_call:FALSE] */
Sorry, I should have mentioned this to you explicitly, but we discussed
this in the past and we decided against having explicit suppressions
for warnings from Coverity Scan (at least, that would be my strong
preference).
The reason is that I would like to avoid referring to trademarks as
much as possible, as they might raise "interesting" legal questions,
and at the same time we have very little control or visibility into how
these suppressions evolve in future versions of the checker.
In this case, by the way, despite the fact that we use this to add some
randomness to the timing of router advertisements as required by RFC
4861, I started wondering recently if an attacker (I'm mostly thinking
about denials of service) could actually gain anything from making
these intervals predictable.
If that's the case, perhaps we could just switch to getrandom() and
be done with it.
--
Stefano
next prev parent reply other threads:[~2026-05-13 23:08 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-13 10:26 Laurent Vivier
2026-05-13 23:08 ` Stefano Brivio [this message]
2026-05-14 1:10 ` David Gibson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260514010825.21c12443@elisabeth \
--to=sbrivio@redhat.com \
--cc=lvivier@redhat.com \
--cc=passt-dev@passt.top \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://passt.top/passt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).