From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: Re: [PATCH] drm: do not use device name as a format string Date: Mon, 7 Dec 2015 13:25:52 +0100 Message-ID: <20151207132552.478200e3@bbrezillon> References: <1447869498-13277-1-git-send-email-nicolas.iooss_linux@m4x.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1447869498-13277-1-git-send-email-nicolas.iooss_linux@m4x.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Nicolas Iooss Cc: Terje =?UTF-8?B?QmVyZ3N0csO2?= =?UTF-8?B?bQ==?= , Alison Wang , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org List-Id: linux-tegra@vger.kernel.org T24gV2VkLCAxOCBOb3YgMjAxNSAxODo1ODoxOCArMDEwMApOaWNvbGFzIElvb3NzIDxuaWNvbGFz Lmlvb3NzX2xpbnV4QG00eC5vcmc+IHdyb3RlOgoKPiBkcm1fZGV2X3NldF91bmlxdWUoKSBmb3Jt YXRzIGl0cyBwYXJhbWV0ZXIgdXNpbmcga3Zhc3ByaW50ZigpIGJ1dCBtYW55Cj4gb2YgaXRzIGNh bGxlcnMgZGlyZWN0bHkgcGFzcyBkZXZfbmFtZShkZXYpIGFzIHByaW50ZiBmb3JtYXQgc3RyaW5n LAo+IHdpdGhvdXQgYW55IGZvcm1hdCBwYXJhbWV0ZXIuICBUaGlzIGNhbiBjYXVzZSBzb21lIGlz c3VlcyB3aGVuIHRoZQo+IGRldmljZSBuYW1lIGNvbnRhaW5zICclJyBjaGFyYWN0ZXJzLgo+IAo+ IFRvIGF2b2lkIGFueSBwb3RlbnRpYWwgaXNzdWUsIGFsd2F5cyB1c2UgIiVzIiB3aGVuIHVzaW5n Cj4gZHJtX2Rldl9zZXRfdW5pcXVlKCkgd2l0aCBkZXZfbmFtZSgpLgo+IAo+IFNpZ25lZC1vZmYt Ynk6IE5pY29sYXMgSW9vc3MgPG5pY29sYXMuaW9vc3NfbGludXhAbTR4Lm9yZz4KCkknbGwgbGV0 IERhbmllbCBkZWNpZGUgd2hldGhlciBpdCdzIHJlbGV2YW50IG9yIG5vdCB0byBhZGQgYSBuZXcK ZnVuY3Rpb24vbWFjcm8gdG8gaGlkZSB0aGlzLCBidXQgSSdtIGZpbmUgd2l0aCB0aGUgY3VycmVu dCBwYXRjaC4KCltmb3IgdGhlIGF0bWVsLWhsY2RjIGRyaXZlcl0KQWNrZWQtYnk6IEJvcmlzIEJy ZXppbGxvbiA8Ym9yaXMuYnJlemlsbG9uQGZyZWUtZWxlY3Ryb25zLmNvbT4KCj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19kYy5jIHwgMiArLQo+ICBkcml2 ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9kcnYuYyAgICB8IDIgKy0KPiAgZHJpdmVy cy9ncHUvZHJtL3RlZ3JhL2RybS5jICAgICAgICAgICAgICAgICAgfCAyICstCj4gIGRyaXZlcnMv Z3B1L2RybS92YzQvdmM0X2Rydi5jICAgICAgICAgICAgICAgIHwgMiArLQo+ICBpbmNsdWRlL2Ry bS9kcm1QLmggICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEgKwo+ICA1IGZpbGVzIGNoYW5n ZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX2RjLmMgYi9kcml2ZXJzL2dwdS9k cm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfZGMuYwo+IGluZGV4IDI0NGRmMGE0NDBiNy4uMGQ3 MjBkM2E3ZWUwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1l bF9obGNkY19kYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hs Y2RjX2RjLmMKPiBAQCAtNzMzLDcgKzczMyw3IEBAIHN0YXRpYyBpbnQgYXRtZWxfaGxjZGNfZGNf ZHJtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAlpZiAoIWRkZXYpCj4g IAkJcmV0dXJuIC1FTk9NRU07Cj4gIAo+IC0JcmV0ID0gZHJtX2Rldl9zZXRfdW5pcXVlKGRkZXYs IGRldl9uYW1lKGRkZXYtPmRldikpOwo+ICsJcmV0ID0gZHJtX2Rldl9zZXRfdW5pcXVlKGRkZXYs ICIlcyIsIGRldl9uYW1lKGRkZXYtPmRldikpOwo+ICAJaWYgKHJldCkKPiAgCQlnb3RvIGVycl91 bnJlZjsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3Vf ZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fZHJ2LmMKPiBp bmRleCAxOTMwMjM0YmE1ZjEuLjk0N2Q3NWY1OTg4MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9m c2wtZGN1L2ZzbF9kY3VfZHJtX2Rydi5jCj4gQEAgLTM2Myw3ICszNjMsNyBAQCBzdGF0aWMgaW50 IGZzbF9kY3VfZHJtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAlmc2xf ZGV2LT5ucCA9IGRldi0+b2Zfbm9kZTsKPiAgCWRybS0+ZGV2X3ByaXZhdGUgPSBmc2xfZGV2Owo+ ICAJZGV2X3NldF9kcnZkYXRhKGRldiwgZnNsX2Rldik7Cj4gLQlkcm1fZGV2X3NldF91bmlxdWUo ZHJtLCBkZXZfbmFtZShkZXYpKTsKPiArCWRybV9kZXZfc2V0X3VuaXF1ZShkcm0sICIlcyIsIGRl dl9uYW1lKGRldikpOwo+ICAKPiAgCXJldCA9IGRybV9kZXZfcmVnaXN0ZXIoZHJtLCAwKTsKPiAg CWlmIChyZXQgPCAwKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHJtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHJtLmMKPiBpbmRleCAxNTllZjUxNWNhYjEuLmIyNzhm NjBmNDM3NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHJtLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHJtLmMKPiBAQCAtOTkxLDcgKzk5MSw3IEBAIHN0YXRp YyBpbnQgaG9zdDF4X2RybV9wcm9iZShzdHJ1Y3QgaG9zdDF4X2RldmljZSAqZGV2KQo+ICAJaWYg KCFkcm0pCj4gIAkJcmV0dXJuIC1FTk9NRU07Cj4gIAo+IC0JZHJtX2Rldl9zZXRfdW5pcXVlKGRy bSwgZGV2X25hbWUoJmRldi0+ZGV2KSk7Cj4gKwlkcm1fZGV2X3NldF91bmlxdWUoZHJtLCAiJXMi LCBkZXZfbmFtZSgmZGV2LT5kZXYpKTsKPiAgCWRldl9zZXRfZHJ2ZGF0YSgmZGV2LT5kZXYsIGRy bSk7Cj4gIAo+ICAJZXJyID0gZHJtX2Rldl9yZWdpc3Rlcihkcm0sIDApOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0 X2Rydi5jCj4gaW5kZXggNmU3MzA2MDVlZGNjLi5jOTBhNDUxYWFhNzkgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0 L3ZjNF9kcnYuYwo+IEBAIC0xNjgsNyArMTY4LDcgQEAgc3RhdGljIGludCB2YzRfZHJtX2JpbmQo c3RydWN0IGRldmljZSAqZGV2KQo+ICAJdmM0LT5kZXYgPSBkcm07Cj4gIAlkcm0tPmRldl9wcml2 YXRlID0gdmM0Owo+ICAKPiAtCWRybV9kZXZfc2V0X3VuaXF1ZShkcm0sIGRldl9uYW1lKGRldikp Owo+ICsJZHJtX2Rldl9zZXRfdW5pcXVlKGRybSwgIiVzIiwgZGV2X25hbWUoZGV2KSk7Cj4gIAo+ ICAJZHJtX21vZGVfY29uZmlnX2luaXQoZHJtKTsKPiAgCWlmIChyZXQpCj4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL2RybVAuaCBiL2luY2x1ZGUvZHJtL2RybVAuaAo+IGluZGV4IDBiOTIxYWUw NmNkOC4uOTk1ZmI5NmNiNzQwIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybVAuaAo+ICsr KyBiL2luY2x1ZGUvZHJtL2RybVAuaAo+IEBAIC0xMDQ5LDYgKzEwNDksNyBAQCB2b2lkIGRybV9k ZXZfcmVmKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICB2b2lkIGRybV9kZXZfdW5yZWYoc3Ry dWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIGludCBkcm1fZGV2X3JlZ2lzdGVyKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpOwo+ICB2b2lkIGRybV9kZXZfdW5yZWdp c3RlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiArX19wcmludGYoMiwgMykKPiAgaW50IGRy bV9kZXZfc2V0X3VuaXF1ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBjb25zdCBjaGFyICpmbXQs IC4uLik7Cj4gIAo+ICBzdHJ1Y3QgZHJtX21pbm9yICpkcm1fbWlub3JfYWNxdWlyZSh1bnNpZ25l ZCBpbnQgbWlub3JfaWQpOwoKCgotLSAKQm9yaXMgQnJlemlsbG9uLCBGcmVlIEVsZWN0cm9ucwpF bWJlZGRlZCBMaW51eCBhbmQgS2VybmVsIGVuZ2luZWVyaW5nCmh0dHA6Ly9mcmVlLWVsZWN0cm9u cy5jb20KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755890AbbLGMZ6 (ORCPT ); Mon, 7 Dec 2015 07:25:58 -0500 Received: from down.free-electrons.com ([37.187.137.238]:42555 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755811AbbLGMZz (ORCPT ); Mon, 7 Dec 2015 07:25:55 -0500 Date: Mon, 7 Dec 2015 13:25:52 +0100 From: Boris Brezillon To: Nicolas Iooss Cc: David Airlie , Jianwei Wang , Alison Wang , Thierry Reding , Terje =?UTF-8?B?QmVyZ3N0csO2?= =?UTF-8?B?bQ==?= , dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] drm: do not use device name as a format string Message-ID: <20151207132552.478200e3@bbrezillon> In-Reply-To: <1447869498-13277-1-git-send-email-nicolas.iooss_linux@m4x.org> References: <1447869498-13277-1-git-send-email-nicolas.iooss_linux@m4x.org> X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.27; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 18 Nov 2015 18:58:18 +0100 Nicolas Iooss wrote: > drm_dev_set_unique() formats its parameter using kvasprintf() but many > of its callers directly pass dev_name(dev) as printf format string, > without any format parameter. This can cause some issues when the > device name contains '%' characters. > > To avoid any potential issue, always use "%s" when using > drm_dev_set_unique() with dev_name(). > > Signed-off-by: Nicolas Iooss I'll let Daniel decide whether it's relevant or not to add a new function/macro to hide this, but I'm fine with the current patch. [for the atmel-hlcdc driver] Acked-by: Boris Brezillon > --- > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 2 +- > drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 2 +- > drivers/gpu/drm/tegra/drm.c | 2 +- > drivers/gpu/drm/vc4/vc4_drv.c | 2 +- > include/drm/drmP.h | 1 + > 5 files changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > index 244df0a440b7..0d720d3a7ee0 100644 > --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > @@ -733,7 +733,7 @@ static int atmel_hlcdc_dc_drm_probe(struct platform_device *pdev) > if (!ddev) > return -ENOMEM; > > - ret = drm_dev_set_unique(ddev, dev_name(ddev->dev)); > + ret = drm_dev_set_unique(ddev, "%s", dev_name(ddev->dev)); > if (ret) > goto err_unref; > > diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c > index 1930234ba5f1..947d75f59881 100644 > --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c > +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c > @@ -363,7 +363,7 @@ static int fsl_dcu_drm_probe(struct platform_device *pdev) > fsl_dev->np = dev->of_node; > drm->dev_private = fsl_dev; > dev_set_drvdata(dev, fsl_dev); > - drm_dev_set_unique(drm, dev_name(dev)); > + drm_dev_set_unique(drm, "%s", dev_name(dev)); > > ret = drm_dev_register(drm, 0); > if (ret < 0) > diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c > index 159ef515cab1..b278f60f4376 100644 > --- a/drivers/gpu/drm/tegra/drm.c > +++ b/drivers/gpu/drm/tegra/drm.c > @@ -991,7 +991,7 @@ static int host1x_drm_probe(struct host1x_device *dev) > if (!drm) > return -ENOMEM; > > - drm_dev_set_unique(drm, dev_name(&dev->dev)); > + drm_dev_set_unique(drm, "%s", dev_name(&dev->dev)); > dev_set_drvdata(&dev->dev, drm); > > err = drm_dev_register(drm, 0); > diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c > index 6e730605edcc..c90a451aaa79 100644 > --- a/drivers/gpu/drm/vc4/vc4_drv.c > +++ b/drivers/gpu/drm/vc4/vc4_drv.c > @@ -168,7 +168,7 @@ static int vc4_drm_bind(struct device *dev) > vc4->dev = drm; > drm->dev_private = vc4; > > - drm_dev_set_unique(drm, dev_name(dev)); > + drm_dev_set_unique(drm, "%s", dev_name(dev)); > > drm_mode_config_init(drm); > if (ret) > diff --git a/include/drm/drmP.h b/include/drm/drmP.h > index 0b921ae06cd8..995fb96cb740 100644 > --- a/include/drm/drmP.h > +++ b/include/drm/drmP.h > @@ -1049,6 +1049,7 @@ void drm_dev_ref(struct drm_device *dev); > void drm_dev_unref(struct drm_device *dev); > int drm_dev_register(struct drm_device *dev, unsigned long flags); > void drm_dev_unregister(struct drm_device *dev); > +__printf(2, 3) > int drm_dev_set_unique(struct drm_device *dev, const char *fmt, ...); > > struct drm_minor *drm_minor_acquire(unsigned int minor_id); -- Boris Brezillon, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com