From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (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 939EC379C28 for ; Tue, 12 May 2026 07:37:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778571443; cv=none; b=gIXBLE4fg+S6ocTDJIK8C40xt9BPHXsA6mePYqjCUk69ld+Ai40MMNtRxOCwCY2mrV9dmY6H4HWnimjR1RhFlOGJmn5SanNAuC6Vbh7JuHWITBMqA8Plxh5i8nnSmCjOQn4AIIeIbW0NXnZCcOk2PFvRQA5oumxFPzlCWZHnjxc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778571443; c=relaxed/simple; bh=dTmrkJn4weiuNg0VBlPnKFt/P9440EYzy09QpnPlOH0=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=NsFijw04OLzjSGnKJgZicVUQVKFOQnX2Zy/JaQd4fElVjaMiLIOWAHg+YWwfS1GW3kFM9gr77ftrL9K/JdNxfbO5mXbnkNpOBNQWNQy5JsWXZ5A0YYulL3cC9ROBCjCw/eUkBlM0xTp+rRTo/NlHWkCTCRsIDxLjXQTbiferDW0= 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=dNGf+EKP; arc=none smtp.client-ip=209.85.128.44 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="dNGf+EKP" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-48984d29fe3so54735325e9.0 for ; Tue, 12 May 2026 00:37:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778571440; x=1779176240; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=PnFqd4eoebq6QO9QB+ogH2edRmONki+/t3a+recyMXU=; b=dNGf+EKP8X/nJTSkKvkSSIwcjtKcekO52ctrgH2rUoggXXnC2SBPbX39sgofnQtS+t WvlXHBmc3uqH94Bk76cnTps+o21xzs71qXE/08fMujVr699G/PS3EPCvO1XY6C8DbUF7 701SuBBwlEJwvTsN+EvqHjRGsvnya1h3vajQSCJ97N3kgSp3d5ia0qKvezBS8Pop0UhW freiAs3GIrwXzlxp0TZtv4/+BuLUErtmaAA31lmtqciB10jg3pgMSV/J1odOmSNrEbqe sKzUaQk08I3pOmjYcMu2i0EmzTBVbp8QYQtEUtxKwyafRN5nAVp79Z4KXiaRlvn+36Jo Jn0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778571440; x=1779176240; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PnFqd4eoebq6QO9QB+ogH2edRmONki+/t3a+recyMXU=; b=NJ2WzoL9gCO8tjU/D4b/Oaufgdk9EreX5KteyRO7JJKCMcQ4X8v9IZiGIzLOWU3V2R QyT24WUK5VqwYnfU9GcwcUm3EtvdhrlnwgAIrZjNauO977S665VcldJYHlE0Mk+yNRxJ PDMsBfee18LFFi/k/l/AXueGYCODqskUNrzKvzfz0a4xJIAYEeY/0+UXBDo/Vu7Q0+F6 QwCoJttpBzcvWAfxhdZ28v1XtTpFv6t/JvLgH+X4a5Up8HQQc7lOanGqsGUdQKGRYXbP VfT+lV52f89LoReo24gU/6uSAha2Zc5BqXsD0+FhiavH9kD4U4frIB1By+jNDz68BEXc J4Rw== X-Forwarded-Encrypted: i=1; AFNElJ8Z+P3vdJS7/LBNEPXzND7lWJFRju+xXl+cJcxVIZlN//vWu7BbTBp9icekzKZ4x1cO6Y+3Wf3Cl2IOIxg=@vger.kernel.org X-Gm-Message-State: AOJu0YybY+JeHuFAe8cqeS7HBmU56cz92Gn03njRnVA9nzs4fnOn+IEy 6FhMQJHICL/EjDAxUmBZP0r3fomlD8l/q8lB3A0EnMM+Hx5Mdy9DhNj8 X-Gm-Gg: Acq92OEKLdV+LCgs+wuldQXC0IjlN2mt04J6W9UHGQgqg93lSa0QmOBLcq/D+J61Vpm QO8qzEmP6YQHsLQB/mjs0es6UxU8awZzr35QMFS0Trm5clcJkxKD/GzclGsy+Hj4DhaSCxVpZja pgJ9PVQaRZRYxlAvWzzQAq4fp8tXTYLhn3YhIbBWaEms0v5kut8dFOgSGrp3ZlQwthilCoHC7G7 2mEwNrTXRhYWlGHAS/BtcqyjSUs60X/p+/BNFtNUOKMcnzL4wU0R6EAFLXc2lLlChkceoLXxhEh qaip95wXD0QXh1gi975rnrMKdrvPku+0cCLzPFll2x/Vbwx2XgwycqLLsW7XlHKMsusDfSH6l33 8hYOqN7xMMNaIUiKDMjssyr5C4fEvUzayJAxjwBM0FJWh1+0Odii9PAiQ+vknVly5SGBDWtr41H yqUbLNBIw08ejsPg1fLusNtHghnH1xlw== X-Received: by 2002:a05:600c:474b:b0:488:9e54:94c0 with SMTP id 5b1f17b1804b1-48e8fe5017fmr25335265e9.8.1778571439934; Tue, 12 May 2026 00:37:19 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48e8f43de84sm11609595e9.26.2026.05.12.00.37.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 May 2026 00:37:19 -0700 (PDT) Date: Tue, 12 May 2026 10:37:15 +0300 From: Dan Carpenter To: Shayaun Nejad Cc: Greg Kroah-Hartman , linux-staging@lists.linux.dev, linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: Re: [PATCH 2/2] staging: rtl8723bs: bound SUPP_RATES IE length in rtw_check_beacon_data Message-ID: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: On Mon, May 11, 2026 at 06:44:56PM -0700, Shayaun Nejad wrote: > rtw_check_beacon_data() copies SUPP_RATES and EXT_SUPP_RATES IE > payloads into a 16-byte support_rate[] buffer. > > The IE lengths are used directly, so oversized rate IEs can overflow the > stack buffer. > > Clamp the supported rates copy and the combined extended supported rates > copy to NDIS_802_11_LENGTH_RATES_EX. > > Fixes: 554c0a3abf21 ("staging: Add rtl8723bs sdio wifi driver") > Cc: stable@vger.kernel.org > Signed-off-by: Shayaun Nejad > --- > drivers/staging/rtl8723bs/core/rtw_ap.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/staging/rtl8723bs/core/rtw_ap.c b/drivers/staging/rtl8723bs/core/rtw_ap.c > index 4b40124110..363ecb02b5 100644 > --- a/drivers/staging/rtl8723bs/core/rtw_ap.c > +++ b/drivers/staging/rtl8723bs/core/rtw_ap.c > @@ -873,6 +873,7 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len) > &ie_len, > (pbss_network->ie_length - _BEACON_IE_OFFSET_)); > if (p) { > + ie_len = min_t(uint, ie_len, NDIS_802_11_LENGTH_RATES_EX); These days we would use umin() > memcpy(support_rate, p + 2, ie_len); > support_rate_num = ie_len; support_rate_num is set here. We know from the min_t() that it's less <= NDIS_802_11_LENGTH_RATES_EX. > } > @@ -882,8 +883,11 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len) > WLAN_EID_EXT_SUPP_RATES, > &ie_len, > pbss_network->ie_length - _BEACON_IE_OFFSET_); > - if (p) > + if (p && support_rate_num < NDIS_802_11_LENGTH_RATES_EX) { We know that support_rate_num <= NDIS_802_11_LENGTH_RATES_EX. Allowing == NDIS_802_11_LENGTH_RATES_EX is okay because memcpy() of zero bytes is a no-op. > + ie_len = min_t(uint, ie_len, > + NDIS_802_11_LENGTH_RATES_EX - support_rate_num); Use umin() here too. Otherwise the patch is fine. regards, dan carpenter > memcpy(support_rate + support_rate_num, p + 2, ie_len); > + } > > network_type = rtw_check_network_type(support_rate, channel); > > -- > 2.43.0 >