Re: [PATCH v2 1/2] KEYS: Don't write out to userspace while holding key semaphore

From: Jarkko Sakkinen
Date: Thu Mar 12 2020 - 21:04:38 EST


On Sun, Mar 08, 2020 at 01:04:09PM -0400, Waiman Long wrote:
> + /*
> + * Read methods will just return the required length
> + * without any copying if the provided length isn't big
> + * enough.
> + */
> + if ((ret > 0) && (ret <= buflen) && buffer &&
> + copy_to_user(buffer, tmpbuf, ret))
> + ret = -EFAULT;

Please, reorg and remove redundant parentheses:

/*
* Read methods will just return the required length
* without any copying if the provided length isn't big
* enough.
*/
if (ret > 0 && ret <= buflen) {
if (buffer && copy_to_user(buffer, tmpbuf, ret))
ret = -EFAULT;
}

Now the comment is attached to the exact right thing. The previous
organization is a pain to look at when backtracking commits for
whatever reason in the future.

I'm also wondering, would it be possible to rework the code in a way
that you don't have check whether buffer is valid on a constant basis?

/Jarkko