staging: lustre: Use kasprintf.
authorNavya Sri Nizamkari <navyasri.tech@gmail.com>
Sun, 1 Mar 2015 07:38:00 +0000 (13:08 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 1 Mar 2015 23:13:27 +0000 (15:13 -0800)
This patch uses kasprintf as it combines kmalloc and
sprintf, and takes care of the size calculation itself.

The semantic patch that makes this change is as follows:

// <smpl>
@@
expression a,flag;
expression list args;
statement S;
@@

  a =
-  \(kmalloc\|kzalloc\)(...,flag)
+  kasprintf(flag,args)
  <... when != a
  if (a == NULL || ...) S
  ...>
- sprintf(a,args);

Signed-off-by: Navya Sri Nizamkari <navyasri.tech@gmail.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/lustre/llite/llite_lib.c

index 59f8387b4487fb377ea98c8a942d8c6efe65aa22..8f8c81d8a47faf2b50993e4fdddc6eedf7f8d8e5 100644 (file)
@@ -977,19 +977,17 @@ int ll_fill_super(struct super_block *sb, struct vfsmount *mnt)
        CDEBUG(D_CONFIG, "Found profile %s: mdc=%s osc=%s\n", profilenm,
               lprof->lp_md, lprof->lp_dt);
 
-       dt = kzalloc(strlen(lprof->lp_dt) + instlen + 2, GFP_NOFS);
+       dt = kasprintf(GFP_NOFS, "%s-%p", lprof->lp_dt, cfg->cfg_instance);
        if (!dt) {
                err = -ENOMEM;
                goto out_free;
        }
-       sprintf(dt, "%s-%p", lprof->lp_dt, cfg->cfg_instance);
 
-       md = kzalloc(strlen(lprof->lp_md) + instlen + 2, GFP_NOFS);
+       md = kasprintf(GFP_NOFS, "%s-%p", lprof->lp_dt, cfg->cfg_instance);
        if (!md) {
                err = -ENOMEM;
                goto out_free;
        }
-       sprintf(md, "%s-%p", lprof->lp_md, cfg->cfg_instance);
 
        /* connections, registrations, sb setup */
        err = client_common_fill_super(sb, md, dt, mnt);