From: Donald Hunter <donald.hunter@gmail.com>
To: Maks Mishin <maks.mishinfz@gmail.com>
Cc: Stephen Hemminger <stephen@networkplumber.org>, netdev@vger.kernel.org
Subject: Re: [PATCH] tc: Fix descriptor leak in get_qdisc_kind()
Date: Thu, 08 Feb 2024 13:45:08 +0000 [thread overview]
Message-ID: <m2v86zrrx7.fsf@gmail.com> (raw)
In-Reply-To: <20240207210006.13706-1-maks.mishinFZ@gmail.com> (Maks Mishin's message of "Thu, 8 Feb 2024 00:00:06 +0300")
Maks Mishin <maks.mishinfz@gmail.com> writes:
> Add closure of fd `dlh` and fix incorrect comparison of `dlh` with NULL.
>
> Found by RASU JSC
What is this tool? It seems to be giving you bad advice.
> Signed-off-by: Maks Mishin <maks.mishinFZ@gmail.com>
> ---
> tc/tc.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/tc/tc.c b/tc/tc.c
> index 575157a8..162700b2 100644
> --- a/tc/tc.c
> +++ b/tc/tc.c
> @@ -112,7 +112,7 @@ struct qdisc_util *get_qdisc_kind(const char *str)
>
> snprintf(buf, sizeof(buf), "%s/q_%s.so", get_tc_lib(), str);
> dlh = dlopen(buf, RTLD_LAZY);
> - if (!dlh) {
> + if (dlh != NULL) {
if (!dlh) seems to be the preferred style in the iproute2 codebase, with
2000+ occurrences.
> /* look in current binary, only open once */
> dlh = BODY;
> if (dlh == NULL) {
> @@ -124,6 +124,9 @@ struct qdisc_util *get_qdisc_kind(const char *str)
>
> snprintf(buf, sizeof(buf), "%s_qdisc_util", str);
> q = dlsym(dlh, buf);
> + if (dlh != NULL)
> + dlclose(dlh);
Incorrect placement of dlclose() before sym q gets dereferenced.
> +
> if (q == NULL)
> goto noexist;
next prev parent reply other threads:[~2024-02-08 13:46 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-07 21:00 [PATCH] tc: Fix descriptor leak in get_qdisc_kind() Maks Mishin
2024-02-08 13:45 ` Donald Hunter [this message]
2024-02-08 17:04 ` Stephen Hemminger
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=m2v86zrrx7.fsf@gmail.com \
--to=donald.hunter@gmail.com \
--cc=maks.mishinfz@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=stephen@networkplumber.org \
/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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.