From 855aa2485f2dd99687363f67ad61ad981fb11cc0 Mon Sep 17 00:00:00 2001 From: Rabin Vincent Date: Wed, 22 Feb 2012 10:46:48 +0530 Subject: dispdev: don't write to read-only memory dispdev sprintf()s onto a string literal, which could have been placed in read-only memory. ST-Ericsson ID: 418951 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: If65516146dc929cc058718d10e70d19f923b98a5 Signed-off-by: Rabin Vincent Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/49881 Reviewed-by: Jimmy RUBIN Reviewed-by: QATOOLS Reviewed-by: QABUILD Reviewed-by: QATEST Reviewed-by: Jonas ABERG --- drivers/misc/dispdev/dispdev.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/misc/dispdev/dispdev.c b/drivers/misc/dispdev/dispdev.c index c504b69e80c..5413a252d35 100644 --- a/drivers/misc/dispdev/dispdev.c +++ b/drivers/misc/dispdev/dispdev.c @@ -74,6 +74,7 @@ struct dispdev { * unregister_buffer as in the rotation use case. */ bool first_update; + char name[sizeof(DISPDEV_DEFAULT_DEVICE_PREFIX) + 3]; }; static int find_buf(struct dispdev *dd, enum buffer_state state) @@ -536,14 +537,14 @@ int dispdev_create(struct mcde_display_device *ddev, bool overlay, struct mcde_overlay_info info = {0}; static int counter; - char *name = "dispdev0"; dd = kzalloc(sizeof(struct dispdev), GFP_KERNEL); if (!dd) return -ENOMEM; - sprintf(name, "%s%d", DISPDEV_DEFAULT_DEVICE_PREFIX, counter++); - init_dispdev(dd, ddev, name, overlay); + snprintf(dd->name, sizeof(dd->name), "%s%d", + DISPDEV_DEFAULT_DEVICE_PREFIX, counter++); + init_dispdev(dd, ddev, dd->name, overlay); if (!overlay) { ret = mcde_dss_enable_display(ddev); -- cgit v1.2.3