Hi, Bernard: Bernard Zhao <bernard@xxxxxxxx> 於 2020年4月27日 週一 下午3:53寫道: > > This code change is to make code bit more readable. > Optimise array size align to HDMI macro define. > Add check if len is overange. One patch should just do one thing, but this do three things. So break this into three patches. Regards, Chun-Kuang. > > Signed-off-by: Bernard Zhao <bernard@xxxxxxxx> > --- > 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 > > > _______________________________________________ > Linux-mediatek mailing list > Linux-mediatek@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/linux-mediatek _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel