[PATCH] format-security: move static strings to const

Daniel Vetter daniel at ffwll.ch
Thu Apr 6 08:27:35 UTC 2017


On Wed, Apr 05, 2017 at 02:47:11PM -0700, Kees Cook wrote:
> While examining output from trial builds with -Wformat-security enabled,
> many strings were found that should be defined as "const", or as a char
> array instead of char pointer. This makes some static analysis easier,
> by producing fewer false positives.
> 
> As these are all trivial changes, it seemed best to put them all in
> a single patch rather than chopping them up per maintainer.
> 
> Signed-off-by: Kees Cook <keescook at chromium.org>

Ack on the drm part.
-Daniel

> ---
>  arch/arm/mach-omap2/board-n8x0.c                  |  2 +-
>  arch/mips/dec/prom/init.c                         |  6 +++---
>  arch/mips/kernel/traps.c                          |  4 ++--
>  drivers/char/dsp56k.c                             |  2 +-
>  drivers/cpufreq/powernow-k8.c                     |  3 ++-
>  drivers/gpu/drm/drm_fb_helper.c                   |  2 +-
>  drivers/net/ethernet/amd/atarilance.c             |  4 ++--
>  drivers/net/ethernet/amd/declance.c               |  2 +-
>  drivers/net/ethernet/amd/sun3lance.c              |  3 ++-
>  drivers/net/ethernet/cirrus/mac89x0.c             |  2 +-
>  drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h |  2 +-
>  drivers/net/ethernet/natsemi/sonic.h              |  2 +-
>  drivers/net/ethernet/toshiba/tc35815.c            |  2 +-
>  drivers/net/fddi/defxx.c                          |  2 +-
>  drivers/net/hippi/rrunner.c                       |  3 ++-
>  drivers/staging/most/mostcore/core.c              |  2 +-
>  drivers/tty/n_hdlc.c                              | 10 +++++-----
>  drivers/tty/serial/st-asc.c                       |  2 +-
>  net/decnet/af_decnet.c                            |  3 ++-
>  19 files changed, 31 insertions(+), 27 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c
> index 6b6fda65fb3b..91272db09fa3 100644
> --- a/arch/arm/mach-omap2/board-n8x0.c
> +++ b/arch/arm/mach-omap2/board-n8x0.c
> @@ -117,7 +117,7 @@ static struct musb_hdrc_platform_data tusb_data = {
>  static void __init n8x0_usb_init(void)
>  {
>  	int ret = 0;
> -	static char	announce[] __initdata = KERN_INFO "TUSB 6010\n";
> +	static const char announce[] __initconst = KERN_INFO "TUSB 6010\n";
>  
>  	/* PM companion chip power control pin */
>  	ret = gpio_request_one(TUSB6010_GPIO_ENABLE, GPIOF_OUT_INIT_LOW,
> diff --git a/arch/mips/dec/prom/init.c b/arch/mips/dec/prom/init.c
> index 4e1761e0a09a..d88eb7a6662b 100644
> --- a/arch/mips/dec/prom/init.c
> +++ b/arch/mips/dec/prom/init.c
> @@ -88,7 +88,7 @@ void __init which_prom(s32 magic, s32 *prom_vec)
>  void __init prom_init(void)
>  {
>  	extern void dec_machine_halt(void);
> -	static char cpu_msg[] __initdata =
> +	static const char cpu_msg[] __initconst =
>  		"Sorry, this kernel is compiled for a wrong CPU type!\n";
>  	s32 argc = fw_arg0;
>  	s32 *argv = (void *)fw_arg1;
> @@ -111,7 +111,7 @@ void __init prom_init(void)
>  #if defined(CONFIG_CPU_R3000)
>  	if ((current_cpu_type() == CPU_R4000SC) ||
>  	    (current_cpu_type() == CPU_R4400SC)) {
> -		static char r4k_msg[] __initdata =
> +		static const char r4k_msg[] __initconst =
>  			"Please recompile with \"CONFIG_CPU_R4x00 = y\".\n";
>  		printk(cpu_msg);
>  		printk(r4k_msg);
> @@ -122,7 +122,7 @@ void __init prom_init(void)
>  #if defined(CONFIG_CPU_R4X00)
>  	if ((current_cpu_type() == CPU_R3000) ||
>  	    (current_cpu_type() == CPU_R3000A)) {
> -		static char r3k_msg[] __initdata =
> +		static const char r3k_msg[] __initconst =
>  			"Please recompile with \"CONFIG_CPU_R3000 = y\".\n";
>  		printk(cpu_msg);
>  		printk(r3k_msg);
> diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
> index c7d17cfb32f6..2c717db50380 100644
> --- a/arch/mips/kernel/traps.c
> +++ b/arch/mips/kernel/traps.c
> @@ -2256,8 +2256,8 @@ void set_handler(unsigned long offset, void *addr, unsigned long size)
>  	local_flush_icache_range(ebase + offset, ebase + offset + size);
>  }
>  
> -static char panic_null_cerr[] =
> -	"Trying to set NULL cache error exception handler";
> +static const char panic_null_cerr[] =
> +	"Trying to set NULL cache error exception handler\n";
>  
>  /*
>   * Install uncached CPU exception handler.
> diff --git a/drivers/char/dsp56k.c b/drivers/char/dsp56k.c
> index 50aa9ba91f25..0d7b577e0ff0 100644
> --- a/drivers/char/dsp56k.c
> +++ b/drivers/char/dsp56k.c
> @@ -489,7 +489,7 @@ static const struct file_operations dsp56k_fops = {
>  
>  /****** Init and module functions ******/
>  
> -static char banner[] __initdata = KERN_INFO "DSP56k driver installed\n";
> +static const char banner[] __initconst = KERN_INFO "DSP56k driver installed\n";
>  
>  static int __init dsp56k_init_driver(void)
>  {
> diff --git a/drivers/cpufreq/powernow-k8.c b/drivers/cpufreq/powernow-k8.c
> index 0b5bf135b090..062d71434e47 100644
> --- a/drivers/cpufreq/powernow-k8.c
> +++ b/drivers/cpufreq/powernow-k8.c
> @@ -1171,7 +1171,8 @@ static struct cpufreq_driver cpufreq_amd64_driver = {
>  
>  static void __request_acpi_cpufreq(void)
>  {
> -	const char *cur_drv, *drv = "acpi-cpufreq";
> +	const char drv[] = "acpi-cpufreq";
> +	const char *cur_drv;
>  
>  	cur_drv = cpufreq_get_current_driver();
>  	if (!cur_drv)
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index f6d4d9700734..1ff9d5912b83 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -2331,7 +2331,7 @@ EXPORT_SYMBOL(drm_fb_helper_hotplug_event);
>  int __init drm_fb_helper_modinit(void)
>  {
>  #if defined(CONFIG_FRAMEBUFFER_CONSOLE_MODULE) && !defined(CONFIG_EXPERT)
> -	const char *name = "fbcon";
> +	const char name[] = "fbcon";
>  	struct module *fbcon;
>  
>  	mutex_lock(&module_mutex);
> diff --git a/drivers/net/ethernet/amd/atarilance.c b/drivers/net/ethernet/amd/atarilance.c
> index 796c37a5bbde..c5b81268c284 100644
> --- a/drivers/net/ethernet/amd/atarilance.c
> +++ b/drivers/net/ethernet/amd/atarilance.c
> @@ -42,8 +42,8 @@
>  
>  */
>  
> -static char version[] = "atarilance.c: v1.3 04/04/96 "
> -					   "Roman.Hodek at informatik.uni-erlangen.de\n";
> +static const char version[] = "atarilance.c: v1.3 04/04/96 "
> +			      "Roman.Hodek at informatik.uni-erlangen.de\n";
>  
>  #include <linux/netdevice.h>
>  #include <linux/etherdevice.h>
> diff --git a/drivers/net/ethernet/amd/declance.c b/drivers/net/ethernet/amd/declance.c
> index 6c98901f1b89..82cc81385033 100644
> --- a/drivers/net/ethernet/amd/declance.c
> +++ b/drivers/net/ethernet/amd/declance.c
> @@ -72,7 +72,7 @@
>  #include <asm/dec/machtype.h>
>  #include <asm/dec/system.h>
>  
> -static char version[] =
> +static const char version[] =
>  "declance.c: v0.011 by Linux MIPS DECstation task force\n";
>  
>  MODULE_AUTHOR("Linux MIPS DECstation task force");
> diff --git a/drivers/net/ethernet/amd/sun3lance.c b/drivers/net/ethernet/amd/sun3lance.c
> index 12bb4f1489fc..77b1db267730 100644
> --- a/drivers/net/ethernet/amd/sun3lance.c
> +++ b/drivers/net/ethernet/amd/sun3lance.c
> @@ -21,7 +21,8 @@
>  
>  */
>  
> -static char *version = "sun3lance.c: v1.2 1/12/2001  Sam Creasey (sammy at sammy.net)\n";
> +static const char version[] =
> +"sun3lance.c: v1.2 1/12/2001  Sam Creasey (sammy at sammy.net)\n";
>  
>  #include <linux/module.h>
>  #include <linux/stddef.h>
> diff --git a/drivers/net/ethernet/cirrus/mac89x0.c b/drivers/net/ethernet/cirrus/mac89x0.c
> index b600fbbbf679..f910f0f386d6 100644
> --- a/drivers/net/ethernet/cirrus/mac89x0.c
> +++ b/drivers/net/ethernet/cirrus/mac89x0.c
> @@ -56,7 +56,7 @@
>    local_irq_{dis,en}able()
>  */
>  
> -static char *version =
> +static const char version[] =
>  "cs89x0.c:v1.02 11/26/96 Russell Nelson <nelson at crynwr.com>\n";
>  
>  /* ======================= configure the driver here ======================= */
> diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h
> index 2bb3d1e93c64..1951b65c7a57 100644
> --- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h
> +++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h
> @@ -407,7 +407,7 @@ struct mac_driver {
>  };
>  
>  struct mac_stats_string {
> -	char desc[ETH_GSTRING_LEN];
> +	const char desc[ETH_GSTRING_LEN];
>  	unsigned long offset;
>  };
>  
> diff --git a/drivers/net/ethernet/natsemi/sonic.h b/drivers/net/ethernet/natsemi/sonic.h
> index 07091dd27e5d..7b0a8db57af9 100644
> --- a/drivers/net/ethernet/natsemi/sonic.h
> +++ b/drivers/net/ethernet/natsemi/sonic.h
> @@ -444,7 +444,7 @@ static inline __u16 sonic_rra_get(struct net_device* dev, int entry,
>  			     (entry * SIZEOF_SONIC_RR) + offset);
>  }
>  
> -static const char *version =
> +static const char version[] =
>      "sonic.c:v0.92 20.9.98 tsbogend at alpha.franken.de\n";
>  
>  #endif /* SONIC_H */
> diff --git a/drivers/net/ethernet/toshiba/tc35815.c b/drivers/net/ethernet/toshiba/tc35815.c
> index a45f98fa4aa7..ad6db05b97d6 100644
> --- a/drivers/net/ethernet/toshiba/tc35815.c
> +++ b/drivers/net/ethernet/toshiba/tc35815.c
> @@ -23,7 +23,7 @@
>   */
>  
>  #define DRV_VERSION	"1.39"
> -static const char *version = "tc35815.c:v" DRV_VERSION "\n";
> +static const char version[] = "tc35815.c:v" DRV_VERSION "\n";
>  #define MODNAME			"tc35815"
>  
>  #include <linux/module.h>
> diff --git a/drivers/net/fddi/defxx.c b/drivers/net/fddi/defxx.c
> index b0de8ecd7fe8..f4a816cf012a 100644
> --- a/drivers/net/fddi/defxx.c
> +++ b/drivers/net/fddi/defxx.c
> @@ -228,7 +228,7 @@
>  #define DRV_VERSION "v1.11"
>  #define DRV_RELDATE "2014/07/01"
>  
> -static char version[] =
> +static const char version[] =
>  	DRV_NAME ": " DRV_VERSION " " DRV_RELDATE
>  	"  Lawrence V. Stefani and others\n";
>  
> diff --git a/drivers/net/hippi/rrunner.c b/drivers/net/hippi/rrunner.c
> index dd7fc6659ad4..9b0d6148e994 100644
> --- a/drivers/net/hippi/rrunner.c
> +++ b/drivers/net/hippi/rrunner.c
> @@ -60,7 +60,8 @@ MODULE_AUTHOR("Jes Sorensen <jes at wildopensource.com>");
>  MODULE_DESCRIPTION("Essential RoadRunner HIPPI driver");
>  MODULE_LICENSE("GPL");
>  
> -static char version[] = "rrunner.c: v0.50 11/11/2002  Jes Sorensen (jes at wildopensource.com)\n";
> +static const char version[] =
> +"rrunner.c: v0.50 11/11/2002  Jes Sorensen (jes at wildopensource.com)\n";
>  
>  
>  static const struct net_device_ops rr_netdev_ops = {
> diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c
> index 191404bc5906..892aae6e9c9a 100644
> --- a/drivers/staging/most/mostcore/core.c
> +++ b/drivers/staging/most/mostcore/core.c
> @@ -82,7 +82,7 @@ struct most_inst_obj {
>  
>  static const struct {
>  	int most_ch_data_type;
> -	char *name;
> +	const char *name;
>  } ch_data_type[] = {
>  	{ MOST_CH_CONTROL, "control\n" },
>  	{ MOST_CH_ASYNC, "async\n" },
> diff --git a/drivers/tty/n_hdlc.c b/drivers/tty/n_hdlc.c
> index e94aea8c0d05..7b2a466616d6 100644
> --- a/drivers/tty/n_hdlc.c
> +++ b/drivers/tty/n_hdlc.c
> @@ -939,11 +939,11 @@ static struct n_hdlc_buf *n_hdlc_buf_get(struct n_hdlc_buf_list *buf_list)
>  	return buf;
>  }	/* end of n_hdlc_buf_get() */
>  
> -static char hdlc_banner[] __initdata =
> +static const char hdlc_banner[] __initconst =
>  	KERN_INFO "HDLC line discipline maxframe=%u\n";
> -static char hdlc_register_ok[] __initdata =
> +static const char hdlc_register_ok[] __initconst =
>  	KERN_INFO "N_HDLC line discipline registered.\n";
> -static char hdlc_register_fail[] __initdata =
> +static const char hdlc_register_fail[] __initconst =
>  	KERN_ERR "error registering line discipline: %d\n";
>  
>  static int __init n_hdlc_init(void)
> @@ -968,9 +968,9 @@ static int __init n_hdlc_init(void)
>  	
>  }	/* end of init_module() */
>  
> -static char hdlc_unregister_ok[] __exitdata =
> +static const char hdlc_unregister_ok[] __exitdata =
>  	KERN_INFO "N_HDLC: line discipline unregistered\n";
> -static char hdlc_unregister_fail[] __exitdata =
> +static const char hdlc_unregister_fail[] __exitdata =
>  	KERN_ERR "N_HDLC: can't unregister line discipline (err = %d)\n";
>  
>  static void __exit n_hdlc_exit(void)
> diff --git a/drivers/tty/serial/st-asc.c b/drivers/tty/serial/st-asc.c
> index bcf1d33e6ffe..ef9f47847f59 100644
> --- a/drivers/tty/serial/st-asc.c
> +++ b/drivers/tty/serial/st-asc.c
> @@ -985,7 +985,7 @@ static struct platform_driver asc_serial_driver = {
>  static int __init asc_init(void)
>  {
>  	int ret;
> -	static char banner[] __initdata =
> +	static const char banner[] __initconst =
>  		KERN_INFO "STMicroelectronics ASC driver initialized\n";
>  
>  	printk(banner);
> diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c
> index e6e79eda9763..c6ed5e9502e9 100644
> --- a/net/decnet/af_decnet.c
> +++ b/net/decnet/af_decnet.c
> @@ -2359,7 +2359,8 @@ MODULE_AUTHOR("Linux DECnet Project Team");
>  MODULE_LICENSE("GPL");
>  MODULE_ALIAS_NETPROTO(PF_DECnet);
>  
> -static char banner[] __initdata = KERN_INFO "NET4: DECnet for Linux: V.2.5.68s (C) 1995-2003 Linux DECnet Project Team\n";
> +static const char banner[] __initconst = KERN_INFO
> +"NET4: DECnet for Linux: V.2.5.68s (C) 1995-2003 Linux DECnet Project Team\n";
>  
>  static int __init decnet_init(void)
>  {
> -- 
> 2.7.4
> 
> 
> -- 
> Kees Cook
> Pixel Security
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the devel mailing list