[PATCH] rndis_host: set proper input size for OID_GEN_PHYSICAL_MEDIUM request

Subsystems: networking drivers, the rest, usb networking drivers

STALE2038d LANDED

Landed in mainline as e56b3d94d939 on 2021-01-12.

2 messages, 2 authors, 2021-01-12 · open the first message on its own page

[PATCH] rndis_host: set proper input size for OID_GEN_PHYSICAL_MEDIUM request

From: Andrey Zhizhikin <hidden>
Date: 2021-01-08 09:59:48

MSFT ActiveSync implementation requires that the size of the response for
incoming query is to be provided in the request input length. Failure to
set the input size proper results in failed request transfer, where the
ActiveSync counterpart reports the NDIS_STATUS_INVALID_LENGTH (0xC0010014L)
error.

Set the input size for OID_GEN_PHYSICAL_MEDIUM query to the expected size
of the response in order for the ActiveSync to properly respond to the
request.

Fixes: 039ee17d1baa ("rndis_host: Add RNDIS physical medium checking into generic_rndis_bind()")
Signed-off-by: Andrey Zhizhikin <redacted>
---
 drivers/net/usb/rndis_host.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/usb/rndis_host.c b/drivers/net/usb/rndis_host.c
index 6609d21ef894..f813ca9dec53 100644
--- a/drivers/net/usb/rndis_host.c
+++ b/drivers/net/usb/rndis_host.c
@@ -387,7 +387,7 @@ generic_rndis_bind(struct usbnet *dev, struct usb_interface *intf, int flags)
 	reply_len = sizeof *phym;
 	retval = rndis_query(dev, intf, u.buf,
 			     RNDIS_OID_GEN_PHYSICAL_MEDIUM,
-			     0, (void **) &phym, &reply_len);
+			     reply_len, (void **)&phym, &reply_len);
 	if (retval != 0 || !phym) {
 		/* OID is optional so don't fail here. */
 		phym_unspec = cpu_to_le32(RNDIS_PHYSICAL_MEDIUM_UNSPECIFIED);
-- 
2.25.1

Re: [PATCH] rndis_host: set proper input size for OID_GEN_PHYSICAL_MEDIUM request

From: patchwork-bot+netdevbpf@kernel.org
Date: 2021-01-12 02:01:07

Hello:

This patch was applied to netdev/net.git (refs/heads/master):

On Fri,  8 Jan 2021 09:58:39 +0000 you wrote:
MSFT ActiveSync implementation requires that the size of the response for
incoming query is to be provided in the request input length. Failure to
set the input size proper results in failed request transfer, where the
ActiveSync counterpart reports the NDIS_STATUS_INVALID_LENGTH (0xC0010014L)
error.

Set the input size for OID_GEN_PHYSICAL_MEDIUM query to the expected size
of the response in order for the ActiveSync to properly respond to the
request.

[...]
Here is the summary with links:
  - rndis_host: set proper input size for OID_GEN_PHYSICAL_MEDIUM request
    https://git.kernel.org/netdev/net/c/e56b3d94d939

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html

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