Re: [PATCH 15/46] selinux: One check and function call less in genfs_read() after error detection

From: Paul Moore
Date: Thu Mar 23 2017 - 18:06:05 EST


On Tue, Jan 17, 2017 at 12:53 PM, Casey Schaufler
<casey@xxxxxxxxxxxxxxxx> wrote:
> On 1/17/2017 8:37 AM, SF Markus Elfring wrote:
>>>> @@ -2015,7 +2015,7 @@ static int genfs_read(struct policydb *p, void *fp)
>>>> newgenfs = kzalloc(sizeof(*newgenfs), GFP_KERNEL);
>>>> if (!newgenfs) {
>>>> rc = -ENOMEM;
>>>> - goto out;
>>>> + goto exit;
>>>> }
>>>>
>>>> rc = str_read(&newgenfs->fstype, GFP_KERNEL, fp, len);
>>>> @@ -2101,7 +2101,7 @@ static int genfs_read(struct policydb *p, void *fp)
>>>> kfree(newgenfs);
>>>> }
>>>> ocontext_destroy(newc, OCON_FSUSE);
>>>> -
>>>> +exit:
>>>> return rc;
>>> Why not replace the "goto out" with "return rc" rather
>>> than add a target?
>> Would you accept to use the statement "return -ENOMEM;" there instead?
>
> That would be even better.

I *hate* code that does a jump to a label only to then do a
return/exit. That said, see my earlier comments about not worrying
too much about performance of the error path and in this case I like
the "feel good" nature of the code where ever failure in the loop goes
to "out".

--
paul moore
www.paul-moore.com