From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from flow-a6-smtp.messagingengine.com (flow-a6-smtp.messagingengine.com [103.168.172.141]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5529F2EEE7C; Fri, 3 Jul 2026 08:15:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.141 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783066512; cv=none; b=ZU+CqzdgPInLx8soZFNq6P05GL2TBGFsRCndpR6YfTOWS6cuTdMpPgcdh5b0cq98uFnW2TTk7y37jPgUAJnEeejOFCY6o4YjUjncLMMrUVUOl9n4IjzDkiztjAJjjHh4qkdFC/4w7cZ0dT6fUddO1PWq8U3mYAj2uPXcS1rgeO0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783066512; c=relaxed/simple; bh=QNovCGGyOVbHtl0m25FTE08uWoRhyIW1FKXWPEOlXdw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=j+KueKTm4IjahXOvk0SWTsTn8vDMrbxJAWd6bzE12OhvQXIKU2vhAlRSF9s18sladRyLyoyKQWZgJm5R4kTSBZV4GcC9xuFL8swOUUhPb1zmkNjmLIhj1NJKO2X3Z4UeMeAYNzySdSQhzeThYEeggIJo7q0s8JoqBLR/Drj8T64= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=fail (p=none dis=none) header.from=Obsidian.Systems; spf=fail smtp.mailfrom=Obsidian.Systems; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=mbF6l84b; arc=none smtp.client-ip=103.168.172.141 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=none dis=none) header.from=Obsidian.Systems Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=Obsidian.Systems Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="mbF6l84b" Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42]) by mailflow.phl.internal (Postfix) with ESMTP id 8D9581380136; Fri, 3 Jul 2026 04:15:10 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-02.internal (MEProxy); Fri, 03 Jul 2026 04:15:10 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; t=1783066510; x=1783073710; bh=0 YGa7LI2K6T0iFSg9ETLaUbZGMFaFuzlKIrT2QTt1DM=; b=mbF6l84bTu11wBFsu CAXM3OGgW5C2M8cLI/ieC0Ar+yoqownphE2fXShwvjIbWANlngkSQffi8Hf1iFFD tFjEqPwRzJG5Eko71bnuSmLcI/XreFx55lcxPGoRX/jsJHTyXOJRDs9CgQwZAPr9 xpLx9KmOegx4dJ96lHd2E8KgbaEI5pKEUlLxwbRnyCL6Cy6Mm7T6rQVaLXFEbO9k hlwEFcRlwrcipW0wej6oL2toOEqomztvxPW9U/g/2qX5cL+50dF3tU/BfVzHamUp eYTBAwqfxrDheo2XkPE83mYDZBu8v4OSH2tcgBw9d9VEjJbRR5kIjFHq6mkhtaxx POs8w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTEgQgi+w+ik2T+h5VYynTeUfJqam49o7KWNziQZlGvOGhu5LEvsuowjdRwbkVP9PT QxYNBs0EHifHcOU3urOY6yMlSVh5MWtKuS+NqWVezs4KXjqh3yQBJ0fLZCrM1noAtSwOiq xUyI4tcn4sPji8EneN5rpxvzXdkhF4ShdO9S/FEF+7WMjzS0mKOjlrFs+eewCbz8Ms/m6i F+0+h12To1W3bdNJS6yvep+bOn9zZa6iKxG2outo1ncy3M6YD0ZljnexaLAa0wvK2DcGHw ET4+BNPPVBR2L+RSpuMForO6goWO4HshzVansxcSVomSmj7eH7v8yQQnM4T73bmujIIYoo oSIhvPBtzIvCgHlbCMW2BCl4aKHf4YG6BFYrqrb5aL/FNAMHDZulHv1VxcK6BjkvpehgOG g7MK/g2VeYqDo+uaE2ZHV9IF0W9lheQb+9m0sxJFTJyBZvB/4inmD/LK+gvTIOTU8tWrKV +O0ToNDADO80KqWWCGKJ5Hdd1XOPBB+V3Irjw/rmm2GJwfOJAGau8t67ZkUu4n0lHVF1jn BITAtXUth/4E+U4HNLjtKzdOg+rk5HVw2Ypye/iZtqcw6KzQMzGlL2Z5nvCOc1ogy4HHmR NS1EKjrip62IbiIYPutUdJL/6y7KaMbBbbf+vhSBhz9FX1ElLaCybF40OJ+Q X-ME-Proxy: Feedback-ID: i91b946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 3 Jul 2026 04:15:09 -0400 (EDT) From: John Ericson To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Kuniyuki Iwashima Cc: John Ericson , Simon Horman , Christian Brauner , David Rheinsberg , Cong Wang , John Ericson , Sergei Zimmerman , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next v2 3/3] af_unix: Clean up error handling in unix_listen() Date: Fri, 3 Jul 2026 04:14:12 -0400 Message-ID: <20260703081416.2583118-3-John.Ericson@Obsidian.Systems> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260703081416.2583118-1-John.Ericson@Obsidian.Systems> References: <20260703081416.2583118-1-John.Ericson@Obsidian.Systems> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: John Ericson To avoid the sort of bug that was just fixed going forward, switch to a style where `err = -E...;` instead happens right before the `goto`. (`err = other_function(...);` is not changed.) Then there is no spooky-action-at-a-distance between the `err` initialization and the `goto`, something which is easier to slip by code review. Assisted-by: Claude:claude-fable-5 Signed-off-by: John Ericson --- net/unix/af_unix.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 10ed9421e43a..7878b27bbaf8 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c @@ -813,19 +813,22 @@ static int unix_listen(struct socket *sock, int backlog) struct unix_sock *u = unix_sk(sk); struct unix_peercred peercred = {}; - err = -EOPNOTSUPP; - if (sock->type != SOCK_STREAM && sock->type != SOCK_SEQPACKET) + if (sock->type != SOCK_STREAM && sock->type != SOCK_SEQPACKET) { + err = -EOPNOTSUPP; goto out; /* Only stream/seqpacket sockets accept */ - err = -EINVAL; - if (!READ_ONCE(u->addr)) + } + if (!READ_ONCE(u->addr)) { + err = -EINVAL; goto out; /* No listens on an unbound socket */ + } err = prepare_peercred(&peercred); if (err) goto out; unix_state_lock(sk); - err = -EINVAL; - if (sk->sk_state != TCP_CLOSE && sk->sk_state != TCP_LISTEN) + if (sk->sk_state != TCP_CLOSE && sk->sk_state != TCP_LISTEN) { + err = -EINVAL; goto out_unlock; + } if (backlog > sk->sk_max_ack_backlog) wake_up_interruptible_all(&u->peer_wait); sk->sk_max_ack_backlog = backlog; -- 2.54.0