From: Markus Elfring <Markus.Elfring@web.de>
To: James Bottomley <jejb@linux.ibm.com>,
linux-scsi@vger.kernel.org, kernel-janitors@vger.kernel.org,
"Martin K. Petersen" <martin.petersen@oracle.com>
Cc: LKML <linux-kernel@vger.kernel.org>
Subject: Re: scsi: ses: Move a label in ses_enclosure_data_process()
Date: Sat, 30 Dec 2023 08:04:32 +0100 [thread overview]
Message-ID: <b65afa15-41e6-4d71-87bd-39fd688fa551@web.de> (raw)
In-Reply-To: <9d24844f30604f969ac10da456801f594ce72f2d.camel@linux.ibm.com>
>> The kfree() function was called in up to three cases by
>> the ses_enclosure_data_process() function during error handling
>> even if the passed variable contained a null pointer.
>> This issue was detected by using the Coccinelle software.
>
> Why is this an issue? The whole point of having kfree(NULL) be a nop
Such “a nop” can trigger the allocation of extra data processing resources,
can't it?
> is so we don't have to special case the free path.
A bit more development attention can hopefully connect the mentioned label
with a more appropriate jump target directly.
> The reason we do
> that is because multiple special case paths through code leads to more
> complex control flows and more potential bugs.
You probably know some advices from another information source.
https://wiki.sei.cmu.edu/confluence/display/c/MEM12-C.+Consider+using+a+goto+chain+when+leaving+a+function+on+error+when+using+and+releasing+resources
> If coccinelle suddenly
> thinks this is a problem, it's coccinelle that needs fixing.
This software tool can help to point source code places out for further considerations.
The search patterns are evolving accordingly.
Regards,
Markus
next prev parent reply other threads:[~2023-12-30 7:04 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-28 14:48 [PATCH] scsi: ses: Move a label in ses_enclosure_data_process() Markus Elfring
2023-12-29 17:21 ` James Bottomley
2023-12-29 17:29 ` Julia Lawall
2023-12-30 7:04 ` Markus Elfring [this message]
2023-12-30 12:41 ` James Bottomley
2023-12-30 13:36 ` Markus Elfring
2023-12-30 13:45 ` James Bottomley
2023-12-30 14:25 ` Markus Elfring
2023-12-31 14:07 ` James Bottomley
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=b65afa15-41e6-4d71-87bd-39fd688fa551@web.de \
--to=markus.elfring@web.de \
--cc=jejb@linux.ibm.com \
--cc=kernel-janitors@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox