|
@@ -598,20 +598,19 @@ nfsd4_decode_create(struct nfsd4_compoundargs *argp, struct nfsd4_create *create
|
|
|
switch (create->cr_type) {
|
|
|
case NF4LNK:
|
|
|
READ_BUF(4);
|
|
|
- create->cr_linklen = be32_to_cpup(p++);
|
|
|
- READ_BUF(create->cr_linklen);
|
|
|
+ create->cr_datalen = be32_to_cpup(p++);
|
|
|
+ READ_BUF(create->cr_datalen);
|
|
|
/*
|
|
|
* The VFS will want a null-terminated string, and
|
|
|
* null-terminating in place isn't safe since this might
|
|
|
* end on a page boundary:
|
|
|
*/
|
|
|
- create->cr_linkname =
|
|
|
- kmalloc(create->cr_linklen + 1, GFP_KERNEL);
|
|
|
- if (!create->cr_linkname)
|
|
|
+ create->cr_data = kmalloc(create->cr_datalen + 1, GFP_KERNEL);
|
|
|
+ if (!create->cr_data)
|
|
|
return nfserr_jukebox;
|
|
|
- memcpy(create->cr_linkname, p, create->cr_linklen);
|
|
|
- create->cr_linkname[create->cr_linklen] = '\0';
|
|
|
- defer_free(argp, kfree, create->cr_linkname);
|
|
|
+ memcpy(create->cr_data, p, create->cr_datalen);
|
|
|
+ create->cr_data[create->cr_datalen] = '\0';
|
|
|
+ defer_free(argp, kfree, create->cr_data);
|
|
|
break;
|
|
|
case NF4BLK:
|
|
|
case NF4CHR:
|