Thread (19 messages) 19 messages, 5 authors, 2020-08-08

Re: [PATCH v7 3/9] net/scm: Regularize compat handling of scm_detach_fds()

From: Kees Cook <hidden>
Date: 2020-08-08 07:18:05
Also in: linux-api, linux-fsdevel, linux-kselftest, lkml

On Fri, Aug 07, 2020 at 05:02:15PM -0700, John Stultz wrote:
On Fri, Aug 7, 2020 at 3:18 PM Kees Cook [off-list ref] wrote:
quoted
On Fri, Aug 07, 2020 at 01:29:24PM -0700, John Stultz wrote:
quoted
On Thu, Jul 9, 2020 at 11:28 AM Kees Cook [off-list ref] wrote:
quoted
Duplicate the cleanups from commit 2618d530dd8b ("net/scm: cleanup
scm_detach_fds") into the compat code.

Replace open-coded __receive_sock() with a call to the helper.

Move the check added in commit 1f466e1f15cf ("net: cleanly handle kernel
vs user buffers for ->msg_control") to before the compat call, even
though it should be impossible for an in-kernel call to also be compat.

Correct the int "flags" argument to unsigned int to match fd_install()
and similar APIs.

Regularize any remaining differences, including a whitespace issue,
a checkpatch warning, and add the check from commit 6900317f5eff ("net,
scm: fix PaX detected msg_controllen overflow in scm_detach_fds") which
fixed an overflow unique to 64-bit. To avoid confusion when comparing
the compat handler to the native handler, just include the same check
in the compat handler.

Acked-by: Christian Brauner <redacted>
Signed-off-by: Kees Cook <redacted>
---
Hey Kees,
  So during the merge window (while chasing a few other regressions),
I noticed occasionally my Dragonboard 845c running AOSP having trouble
with the web browser crashing or other apps hanging, and I've bisected
the issue down to this change.

Unfortunately it doesn't revert cleanly so I can't validate reverting
it sorts things against linus/HEAD.  Anyway, I wanted to check and see
if you had any other reports of similar or any ideas what might be
going wrong?
Hi; Yes, sorry for the trouble. I had a typo in a refactor of
SCM_RIGHTS. I suspect it'll be fixed by this:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1fa2c0a0c814fbae0eb3e79a510765225570d043

Can you verify Linus's latest tree works for you? If not, there might be
something else hiding in the corners...
Thanks so much! Yes, I just updated to Linus' latest and the issue has
disappeared!

thanks again!
Whew; sorry again and thanks for testing! :)

-- 
Kees Cook
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help