All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/mediatek: cleanup coding style in mediatek a bit
@ 2020-04-27  7:52 ` Bernard Zhao
  0 siblings, 0 replies; 25+ messages in thread
From: Bernard Zhao @ 2020-04-27  7:52 UTC (permalink / raw)
  To: Chun-Kuang Hu, Philipp Zabel, David Airlie, Daniel Vetter,
	Matthias Brugger, dri-devel, linux-arm-kernel, linux-mediatek,
	linux-kernel
  Cc: opensource.kernel, Bernard Zhao

This code change is to make code bit more readable.
Optimise array size align to HDMI macro define.
Add check if len is overange.

Signed-off-by: Bernard Zhao <bernard@vivo.com>
---
 drivers/gpu/drm/mediatek/mtk_hdmi.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
index ff43a3d80410..40fb5154ed5d 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
+++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
@@ -311,15 +311,15 @@ static void mtk_hdmi_hw_send_info_frame(struct mtk_hdmi *hdmi, u8 *buffer,
 	u8 checksum;
 	int ctrl_frame_en = 0;
 
-	frame_type = *buffer;
-	buffer += 1;
-	frame_ver = *buffer;
-	buffer += 1;
-	frame_len = *buffer;
-	buffer += 1;
-	checksum = *buffer;
-	buffer += 1;
+	frame_type = *buffer++;
+	frame_ver = *buffer++;
+	frame_len = *buffer++;
+	checksum = *buffer++;
 	frame_data = buffer;
+	if ((frame_len + HDMI_INFOFRAME_HEADER_SIZE) > len) {
+		dev_err(hdmi->dev, "Wrong frame len: %d\n", frame_len;
+		return;
+	}
 
 	dev_dbg(hdmi->dev,
 		"frame_type:0x%x,frame_ver:0x%x,frame_len:0x%x,checksum:0x%x\n",
@@ -982,7 +982,7 @@ static int mtk_hdmi_setup_avi_infoframe(struct mtk_hdmi *hdmi,
 					struct drm_display_mode *mode)
 {
 	struct hdmi_avi_infoframe frame;
-	u8 buffer[17];
+	u8 buffer[HDMI_INFOFRAME_HEADER_SIZE + HDMI_AVI_INFOFRAME_SIZE];
 	ssize_t err;
 
 	err = drm_hdmi_avi_infoframe_from_display_mode(&frame,
@@ -1008,7 +1008,7 @@ static int mtk_hdmi_setup_spd_infoframe(struct mtk_hdmi *hdmi,
 					const char *product)
 {
 	struct hdmi_spd_infoframe frame;
-	u8 buffer[29];
+	u8 buffer[HDMI_INFOFRAME_HEADER_SIZE + HDMI_SPD_INFOFRAME_SIZE];
 	ssize_t err;
 
 	err = hdmi_spd_infoframe_init(&frame, vendor, product);
@@ -1031,7 +1031,7 @@ static int mtk_hdmi_setup_spd_infoframe(struct mtk_hdmi *hdmi,
 static int mtk_hdmi_setup_audio_infoframe(struct mtk_hdmi *hdmi)
 {
 	struct hdmi_audio_infoframe frame;
-	u8 buffer[14];
+	u8 buffer[HDMI_INFOFRAME_HEADER_SIZE + HDMI_AUDIO_INFOFRAME_SIZE];
 	ssize_t err;
 
 	err = hdmi_audio_infoframe_init(&frame);
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2020-05-07  7:05 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-27  7:52 [PATCH] drm/mediatek: cleanup coding style in mediatek a bit Bernard Zhao
2020-04-27  7:52 ` Bernard Zhao
2020-04-27  7:52 ` Bernard Zhao
2020-04-27  7:52 ` Bernard Zhao
2020-04-29 14:22 ` Chun-Kuang Hu
2020-04-29 14:22   ` Chun-Kuang Hu
2020-04-29 14:22   ` Chun-Kuang Hu
2020-04-29 14:22   ` Chun-Kuang Hu
2020-04-30  6:31   ` Bernard
2020-04-30  6:31     ` Bernard
2020-04-30  6:31     ` Bernard
2020-04-30  6:31     ` Bernard
2020-04-30 15:50     ` Chun-Kuang Hu
2020-04-30 15:50       ` Chun-Kuang Hu
2020-04-30 15:50       ` Chun-Kuang Hu
2020-04-30 15:50       ` Chun-Kuang Hu
2020-05-06 12:14       ` Bernard
2020-05-06 12:14         ` Bernard
2020-05-06 12:14         ` Bernard
2020-05-06 12:14         ` Bernard
2020-05-01  3:57 ` kbuild test robot
2020-05-01  3:57   ` kbuild test robot
2020-05-01  3:57   ` kbuild test robot
2020-05-01  3:57   ` kbuild test robot
2020-05-01  3:57   ` kbuild test robot

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.