From 1f1075f3127e456a1bd90dc6a0315603c0e56f70 Mon Sep 17 00:00:00 2001 From: Sachin Bhayare Date: Mon, 21 Aug 2017 15:42:28 +0530 Subject: [PATCH] drm/msm/sde: count null character for blob length Return value of snprintf doesn't account for the terminating null character it appends to the end of every string. So this change adds one extra character length to the blob size to avoid over reading from the client end. Change-Id: I8919f0b01dcbcad9300c28e070e9b9ca64368db2 Signed-off-by: Narendra Muppalla Signed-off-by: Sachin Bhayare --- drivers/gpu/drm/msm/sde/sde_crtc.c | 2 +- drivers/gpu/drm/msm/sde/sde_kms.h | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/msm/sde/sde_crtc.c b/drivers/gpu/drm/msm/sde/sde_crtc.c index 2e9e2192670d..5c8f9c5a0a1b 100644 --- a/drivers/gpu/drm/msm/sde/sde_crtc.c +++ b/drivers/gpu/drm/msm/sde/sde_crtc.c @@ -1551,7 +1551,7 @@ static void sde_crtc_install_properties(struct drm_crtc *crtc, sde_kms_info_add_keyint(info, "max_mdp_clk", sde_kms->perf.max_core_clk_rate); msm_property_set_blob(&sde_crtc->property_info, &sde_crtc->blob_info, - info->data, info->len, CRTC_PROP_INFO); + info->data, SDE_KMS_INFO_DATALEN(info), CRTC_PROP_INFO); kfree(info); } diff --git a/drivers/gpu/drm/msm/sde/sde_kms.h b/drivers/gpu/drm/msm/sde/sde_kms.h index d929e48a3fe8..fa0288b89b91 100644 --- a/drivers/gpu/drm/msm/sde/sde_kms.h +++ b/drivers/gpu/drm/msm/sde/sde_kms.h @@ -281,10 +281,12 @@ struct sde_kms_info { /** * SDE_KMS_INFO_DATALEN - Macro for accessing sde_kms_info data length + * it adds an extra character length to count null. * @S: Pointer to sde_kms_info structure * Returns: Size of available byte data */ -#define SDE_KMS_INFO_DATALEN(S) ((S) ? ((struct sde_kms_info *)(S))->len : 0) +#define SDE_KMS_INFO_DATALEN(S) ((S) ? ((struct sde_kms_info *)(S))->len + 1 \ + : 0) /** * sde_kms_info_reset - reset sde_kms_info structure