From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qt1-f182.google.com (mail-qt1-f182.google.com [209.85.160.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A6DF233134 for ; Mon, 18 May 2026 22:49:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.182 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779144577; cv=none; b=I3jnNOASWsx/DZ36ry1gMpfLJUz3XxHqlxSGMXST9ZA098GyeA0+mWQGAEBCt2w3S+xf1h8zyRTi65wEqouO+5EwX64zppWvTj2h1h+l3KKRlm99+pnHGBdRDDGvI7+F41ASA6+Vz7635xkdqaU7/WqfkTfhkp3IYZjqz8rt60c= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779144577; c=relaxed/simple; bh=obvmUuH9tGA1XvVGBjUQeAiWSZlvr7iIRG8Y4fqxxAE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VW6mN7CJvs4Ck6vUQxCSQxz299yKPqli0COu2P1Wsa068OV5VJYnYF55bY8R/QE33OWAU1qn04WtZ73uTDApzN1SgsaLUt2nIiWB5KCV0njrUHEWQrDjydN1U27H92IEl2tkGcWuv/taUgF9XD+S9Y4w3BDY1+wjQX6PRCEmfoA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=kIcKTQdO; arc=none smtp.client-ip=209.85.160.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="kIcKTQdO" Received: by mail-qt1-f182.google.com with SMTP id d75a77b69052e-5165195c8b0so35696131cf.0 for ; Mon, 18 May 2026 15:49:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779144575; x=1779749375; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SkcB4m8RZ7/R+/GSiMnKRnb7AxtDaYWk7VjkoGqlKOw=; b=kIcKTQdOzvKGyDgpLF5+PfqbO6n4QUfDY9SbuTUIMv3S5sh4o61VyZsBtr+77VN8dE 2ql0/NmZ/YgUQQ1ENSTmS52SAl0WeGD4yQrMEAdJOs6rdJ3xDEenLn3WUJd2UQH2Vm0t yRnSnoNRtOI/fQ5xmzLxhj4drde5j8d0A9DBobIEHWB+Qfo79zsSlEHYIqe38ebS6Kyb i0l+SzRRo7PiQaR1caGm5qY57B0YzS930VAXhb1a2McOTvODAUUgb5IOmKH1e/ca0qeS cR8rSW5b8Fj+9o1kk5LmxNkzo7lqyJGsIcOzcTtCUkaopRwCTNXJMCuh39TXI8YgzseH ScWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779144575; x=1779749375; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=SkcB4m8RZ7/R+/GSiMnKRnb7AxtDaYWk7VjkoGqlKOw=; b=Qg6ta7x5m+RTyK5ifZYxmAwHKW2QtH6VsklkFluZeDlrzu7GKc+9yLk78uzcy5ZeVX rprF5cbWgs/kNyOjXIGWpW3r+3NIWTap5DSqKnAhfin3UMeHFm1cLk4XciKP+nUmarLY Sm44V0facdti/r1GvjLnGxzZhXw0PtvBiJzH+RADSuzcZjbNcFp+IgrWiCGnAJ6Bfl/A PILRxBt1BYg0gaxzX6cyaBQjOoQG6HaXKDWEyc1/YR8zrI0Wp4laAdrWRllyOuXQG2mv wRJj4YfdM/FY54SWsyCCFbAeIR9oX+n6sNB0774bZfB+gmtKle6WJsBzuQX1ZxZQ9B// fqAQ== X-Forwarded-Encrypted: i=1; AFNElJ9MPz5hEDYXWPU6Kr9HLsuOkm9WcjBb3qq8sQEjorgnhZwMDo4GJ/7JRYXAnLI7I5uRqMNEogh49sGrfrg=@vger.kernel.org X-Gm-Message-State: AOJu0Yx0q4ESqlvzQkqQe/FlUpy4+Cijum26ahwEkLl9j7dzD/pJnBji Y/wBnJKIeBmcp30UaTuViN7NnU/HMUkMkFEKDD7XumOhh+Sy0kF7fiy8 X-Gm-Gg: Acq92OEsScAJEVeH9CLWo5aUk+4rpWKYIr8OVLCaM6t/KeivlSKoqOp+7yjGm9Zif+X noLCL9kmaoz5MBBH0ljKBHwoT8fcgYC8Jgr4ju27Q4arf0kPzjrgjIF09T1FV9nKJqjSCfHZXLI +RFgCGBM29DEdLU45HBFdA/vpD0AUs7i/ffEE32tDroQ2cCZwfUvbNt67m0jZzRDCUpHfKTWhO/ qkxm7ZymusfFBbRUEcvqMN7ckOmWDp+gI03CkvfbD/NEZWoRhSMmZIrPzb7hymfUug1ZJsiclji Kr9DXDvCqwNbCsFdD5Lwha4XRyuSJjoqF3NHcYy+aEs0KK4PArFcjfJbbI1Hlv9682Z02m3aKN7 ia5+aguG3sIoFcfOlfnd47GbbbOeF4sHqzms6DXiakn4dzI0YVoWaR6vaRCdRGKPbjsfpmdyP6I 0T0U8oJmi+psDEOqu6OZj43lMNS6O+3z3XlExQYD2zvZFRQravLsn3E/IDSoys+B+t27xhUFosA p0Ys3XJz8o= X-Received: by 2002:ac8:5a93:0:b0:50f:b790:96ab with SMTP id d75a77b69052e-5165a219020mr241010061cf.48.1779144575270; Mon, 18 May 2026 15:49:35 -0700 (PDT) Received: from mango-teamkim.. ([129.170.196.167]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-51645687d30sm154720631cf.4.2026.05.18.15.49.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 May 2026 15:49:34 -0700 (PDT) From: pip-izony To: Greg Kroah-Hartman Cc: Seungjin Bae , Kyungtae Kim , Alan Stern , Kees Cook , Dan Carpenter , David Mosberger , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 2/2] usb: host: max3421: Reject hub port requests for non-existent ports Date: Mon, 18 May 2026 18:49:02 -0400 Message-ID: <20260518224901.1887013-3-eeodqql09@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260518224901.1887013-1-eeodqql09@gmail.com> References: <20260517190308.1876316-1-eeodqql09@gmail.com> <20260518224901.1887013-1-eeodqql09@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Seungjin Bae The `max3421_hub_control()` function handles USB hub class requests to the virtual root hub. The `GetPortStatus` case correctly rejects requests with `index != 1`, since the virtual root hub has only a single port. However, the `ClearPortFeature` and `SetPortFeature` cases lack the same check. Fix this by extending the `index != 1` rejection to both cases, matching the existing behavior of `GetPortStatus`. Fixes: 2d53139f3162 ("Add support for using a MAX3421E chip as a host driver.") Suggested-by: Alan Stern Reviewed-by: Alan Stern Signed-off-by: Seungjin Bae --- v3: New patch in v3, suggested by Alan Stern. v3 -> v4: No functional changes. drivers/usb/host/max3421-hcd.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/usb/host/max3421-hcd.c b/drivers/usb/host/max3421-hcd.c index 3d6b351dcb1a..73e76d0e6973 100644 --- a/drivers/usb/host/max3421-hcd.c +++ b/drivers/usb/host/max3421-hcd.c @@ -1685,6 +1685,8 @@ max3421_hub_control(struct usb_hcd *hcd, u16 type_req, u16 value, u16 index, case ClearHubFeature: break; case ClearPortFeature: + if (index != 1) + goto error; switch (value) { case USB_PORT_FEAT_SUSPEND: break; @@ -1728,6 +1730,8 @@ max3421_hub_control(struct usb_hcd *hcd, u16 type_req, u16 value, u16 index, break; case SetPortFeature: + if (index != 1) + goto error; switch (value) { case USB_PORT_FEAT_LINK_STATE: case USB_PORT_FEAT_U1_TIMEOUT: -- 2.43.0