Revert "af_unix: Call scm_recv() only after scm_set_cred()."
authorKuniyuki Iwashima <kuniyu@amazon.com>
Mon, 26 Jun 2023 20:58:37 +0000 (13:58 -0700)
committerJakub Kicinski <kuba@kernel.org>
Tue, 27 Jun 2023 16:35:53 +0000 (09:35 -0700)
This reverts commit 3f5f118bb657f94641ea383c7c1b8c09a5d46ea2.

Konrad reported that desktop environment below cannot be reached after
commit 3f5f118bb657 ("af_unix: Call scm_recv() only after scm_set_cred().")

  - postmarketOS (Alpine Linux w/ musl 1.2.4)
  - busybox 1.36.1
  - GNOME 44.1
  - networkmanager 1.42.6
  - openrc 0.47

Regarding to the warning of SO_PASSPIDFD, I'll post another patch to
suppress it by skipping SCM_PIDFD if scm->pid == NULL in scm_pidfd_recv().

Reported-by: Konrad Dybcio <konradybcio@kernel.org>
Link: https://lore.kernel.org/netdev/8c7f9abd-4f84-7296-2788-1e130d6304a0@kernel.org/
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Tested-by: Ido Schimmel <idosch@nvidia.com>
Tested-by: Gal Pressman <gal@nvidia.com>
Link: https://lore.kernel.org/r/20230626205837.82086-1-kuniyu@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/unix/af_unix.c

index f2f234f..3953daa 100644 (file)
@@ -2807,7 +2807,7 @@ unlock:
        } while (size);
 
        mutex_unlock(&u->iolock);
-       if (state->msg && check_creds)
+       if (state->msg)
                scm_recv(sock, state->msg, &scm, flags);
        else
                scm_destroy(&scm);