[SUNRPC]: Use k{mem,str}dup where applicable
authorArnaldo Carvalho de Melo <acme@mandriva.com>
Tue, 21 Nov 2006 03:21:34 +0000 (01:21 -0200)
committerDavid S. Miller <davem@sunset.davemloft.net>
Sun, 3 Dec 2006 05:30:20 +0000 (21:30 -0800)
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
net/sunrpc/auth_gss/auth_gss.c
net/sunrpc/auth_gss/gss_krb5_mech.c
net/sunrpc/auth_gss/gss_spkm3_mech.c
net/sunrpc/auth_gss/svcauth_gss.c
net/sunrpc/clnt.c

index b36b9463f5a40e7cda66d09603c9f77bf3333c4d..e5a84a482e57f7a3c644880084cb9afd817d1640 100644 (file)
@@ -198,11 +198,10 @@ simple_get_netobj(const void *p, const void *end, struct xdr_netobj *dest)
        q = (const void *)((const char *)p + len);
        if (unlikely(q > end || q < p))
                return ERR_PTR(-EFAULT);
-       dest->data = kmalloc(len, GFP_KERNEL);
+       dest->data = kmemdup(p, len, GFP_KERNEL);
        if (unlikely(dest->data == NULL))
                return ERR_PTR(-ENOMEM);
        dest->len = len;
-       memcpy(dest->data, p, len);
        return q;
 }
 
index 325e72e4fd31cbc77a066324f3e84a60cee0b3de..754b8cd6439f20e4157069ff9bbc5197b3e3010f 100644 (file)
@@ -70,10 +70,9 @@ simple_get_netobj(const void *p, const void *end, struct xdr_netobj *res)
        q = (const void *)((const char *)p + len);
        if (unlikely(q > end || q < p))
                return ERR_PTR(-EFAULT);
-       res->data = kmalloc(len, GFP_KERNEL);
+       res->data = kmemdup(p, len, GFP_KERNEL);
        if (unlikely(res->data == NULL))
                return ERR_PTR(-ENOMEM);
-       memcpy(res->data, p, len);
        res->len = len;
        return q;
 }
index bdedf456bc17d6687a4439fb80c350a9d292617e..d57f60838895d878efca25ba46628ca795237f16 100644 (file)
@@ -76,10 +76,9 @@ simple_get_netobj(const void *p, const void *end, struct xdr_netobj *res)
        q = (const void *)((const char *)p + len);
        if (unlikely(q > end || q < p))
                return ERR_PTR(-EFAULT);
-       res->data = kmalloc(len, GFP_KERNEL);
+       res->data = kmemdup(p, len, GFP_KERNEL);
        if (unlikely(res->data == NULL))
                return ERR_PTR(-ENOMEM);
-       memcpy(res->data, p, len);
        return q;
 }
 
index 1f0f079ffa654d1aa412ff3aa5344aaaee34dd4e..700353b330fd3ddaa359c95bd5b53f020c46aaab 100644 (file)
@@ -113,9 +113,7 @@ static int rsi_match(struct cache_head *a, struct cache_head *b)
 static int dup_to_netobj(struct xdr_netobj *dst, char *src, int len)
 {
        dst->len = len;
-       dst->data = (len ? kmalloc(len, GFP_KERNEL) : NULL);
-       if (dst->data)
-               memcpy(dst->data, src, len);
+       dst->data = (len ? kmemdup(src, len, GFP_KERNEL) : NULL);
        if (len && !dst->data)
                return -ENOMEM;
        return 0;
@@ -756,10 +754,9 @@ svcauth_gss_register_pseudoflavor(u32 pseudoflavor, char * name)
        if (!new)
                goto out;
        kref_init(&new->h.ref);
-       new->h.name = kmalloc(strlen(name) + 1, GFP_KERNEL);
+       new->h.name = kstrdup(name, GFP_KERNEL);
        if (!new->h.name)
                goto out_free_dom;
-       strcpy(new->h.name, name);
        new->h.flavour = &svcauthops_gss;
        new->pseudoflavor = pseudoflavor;
 
index 78696f2dc7d6d402ef200f140f897388ce383db1..dfeea4fea95a7f6dfb4ea038491aaba39ced48dc 100644 (file)
@@ -253,10 +253,9 @@ rpc_clone_client(struct rpc_clnt *clnt)
 {
        struct rpc_clnt *new;
 
-       new = kmalloc(sizeof(*new), GFP_KERNEL);
+       new = kmemdup(clnt, sizeof(*new), GFP_KERNEL);
        if (!new)
                goto out_no_clnt;
-       memcpy(new, clnt, sizeof(*new));
        atomic_set(&new->cl_count, 1);
        atomic_set(&new->cl_users, 0);
        new->cl_parent = clnt;