[PATCH] afs: kstrdup() memory handling

From: Sanidhya Kashyap
Date: Sat Mar 21 2015 - 12:50:47 EST


Handling kstrdup() failure in case of memory pressure even
for new_opts.

Signed-off-by: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
---
fs/afs/super.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/fs/afs/super.c b/fs/afs/super.c
index c486155..477f38e 100644
--- a/fs/afs/super.c
+++ b/fs/afs/super.c
@@ -360,10 +360,13 @@ static struct dentry *afs_mount(struct file_system_type *fs_type,
struct key *key;
char *new_opts = kstrdup(options, GFP_KERNEL);
struct afs_super_info *as;
- int ret;
+ int ret = -ENOMEM;

_enter(",,%s,%p", dev_name, options);

+ if (new_opts)
+ goto error_out;
+
memset(&params, 0, sizeof(params));

ret = -EINVAL;
@@ -441,6 +444,7 @@ error:
afs_put_cell(params.cell);
key_put(params.key);
kfree(new_opts);
+error_out:
_leave(" = %d", ret);
return ERR_PTR(ret);
}
--
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/