mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
[PATCH] vfs: use kstrdup() and check failing allocation
- use kstrdup() instead of kmalloc() + memcpy() - return NULL if allocating ->mnt_devname failed - mnt_devname should be const Signed-off-by: Li Zefan <[email protected]> Acked-by: Cyrill Gorcunov <[email protected]> Signed-off-by: Al Viro <[email protected]>
This commit is contained in:
parent
672b16b2f6
commit
88b387824f
2 changed files with 14 additions and 12 deletions
|
|
@ -112,9 +112,13 @@ struct vfsmount *alloc_vfsmnt(const char *name)
|
|||
int err;
|
||||
|
||||
err = mnt_alloc_id(mnt);
|
||||
if (err) {
|
||||
kmem_cache_free(mnt_cache, mnt);
|
||||
return NULL;
|
||||
if (err)
|
||||
goto out_free_cache;
|
||||
|
||||
if (name) {
|
||||
mnt->mnt_devname = kstrdup(name, GFP_KERNEL);
|
||||
if (!mnt->mnt_devname)
|
||||
goto out_free_id;
|
||||
}
|
||||
|
||||
atomic_set(&mnt->mnt_count, 1);
|
||||
|
|
@ -127,16 +131,14 @@ struct vfsmount *alloc_vfsmnt(const char *name)
|
|||
INIT_LIST_HEAD(&mnt->mnt_slave_list);
|
||||
INIT_LIST_HEAD(&mnt->mnt_slave);
|
||||
atomic_set(&mnt->__mnt_writers, 0);
|
||||
if (name) {
|
||||
int size = strlen(name) + 1;
|
||||
char *newname = kmalloc(size, GFP_KERNEL);
|
||||
if (newname) {
|
||||
memcpy(newname, name, size);
|
||||
mnt->mnt_devname = newname;
|
||||
}
|
||||
}
|
||||
}
|
||||
return mnt;
|
||||
|
||||
out_free_id:
|
||||
mnt_free_id(mnt);
|
||||
out_free_cache:
|
||||
kmem_cache_free(mnt_cache, mnt);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in a new issue