From: Hui Peng <benquike@gmail.com>
To: airlied@redhat.com, sean@poorly.run, tzimmermann@suse.de,
simona@ffwll.ch
Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Subject: [PATCH] drm/udl: reject short USB EDID control transfers and fix URB init cleanup
Date: Sat, 19 Sep 2026 22:35:11 +0000 [thread overview]
Message-ID: <20260919223511.3889061-1-benquike@gmail.com> (raw)
In drivers/gpu/drm/udl/ (udl_drv.c, udl_edid.c), check that
usb_control_msg() returns the full 2-byte response in
udl_read_edid_block() before copying read_buff[1], and clean up
allocated URBs if udl_Driver initialization fails.
Fixes: 5320918b9a87 ("drm/udl: initial UDL driver (v4)")
Assisted-by: LLM
Signed-off-by: Hui Peng <benquike@gmail.com>
---
diff --git a/drivers/gpu/drm/udl/udl_drv.c b/drivers/gpu/drm/udl/udl_drv.c
index 1922988625eb..239a6983f49f 100644
--- a/drivers/gpu/drm/udl/udl_drv.c
+++ b/drivers/gpu/drm/udl/udl_drv.c
@@ -97,8 +97,10 @@ static int udl_usb_probe(struct usb_interface *interface,
return PTR_ERR(udl);
r = drm_dev_register(&udl->drm, 0);
- if (r)
+ if (r) {
+ udl_drop_usb(udl);
return r;
+ }
DRM_INFO("Initialized udl on minor %d\n", udl->drm.primary->index);
diff --git a/drivers/gpu/drm/udl/udl_edid.c b/drivers/gpu/drm/udl/udl_edid.c
index af4cff2a7c51..b7c462436573 100644
--- a/drivers/gpu/drm/udl/udl_edid.c
+++ b/drivers/gpu/drm/udl/udl_edid.c
@@ -36,7 +36,7 @@ static int udl_read_edid_block(void *data, u8 *buf, unsigned int block, size_t l
if (ret < 0) {
drm_err(dev, "Read EDID byte %zu failed err %x\n", i, ret);
goto err_drm_dev_exit;
- } else if (ret < 1) {
+ } else if (ret != 2) {
ret = -EIO;
drm_err(dev, "Read EDID byte %zu failed\n", i);
goto err_drm_dev_exit;
next reply other threads:[~2026-09-21 7:00 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-19 22:35 Hui Peng [this message]
2026-09-21 10:43 ` [PATCH] drm/udl: reject short USB EDID control transfers and fix URB init cleanup Jani Nikula
2026-09-24 6:44 ` [PATCH v2 0/2] drm/udl: fix EDID short transfer check and probe USB cleanup Hui Peng
2026-09-24 6:44 ` [PATCH v2 1/2] drm/udl: reject short USB control transfers in udl_read_edid_block() Hui Peng
2026-09-24 7:14 ` Thomas Zimmermann
2026-09-24 7:30 ` [PATCH v3 " Hui Peng
2026-09-24 12:24 ` Thomas Zimmermann
2026-09-24 6:44 ` [PATCH v2 2/2] drm/udl: clean up USB resources if drm_dev_register() fails Hui Peng
2026-09-24 7:12 ` Thomas Zimmermann
2026-09-24 7:30 ` [PATCH v3 " Hui Peng
2026-09-24 7:30 ` [PATCH v3 0/2] drm/udl: fix EDID short transfer check and probe USB cleanup Hui Peng
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260919223511.3889061-1-benquike@gmail.com \
--to=benquike@gmail.com \
--cc=airlied@redhat.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sean@poorly.run \
--cc=simona@ffwll.ch \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.