[PATCH] vfs: use kstrdup() and check failing allocation - Kernel

This is a discussion on [PATCH] vfs: use kstrdup() and check failing allocation - Kernel ; - use kstrdup() instead of kmalloc() + memcpy() - return NULL if allocating ->mnt_devname failed - mnt_devname should be const Signed-off-by: Li Zefan --- Andrew, please drop vfs-use-kstrdup.patch --- fs/namespace.c | 24 +++++++++++++----------- include/linux/mount.h | 2 +- 2 files changed, ...

+ Reply to Thread
Results 1 to 5 of 5

Thread: [PATCH] vfs: use kstrdup() and check failing allocation

  1. [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
    ---

    Andrew, please drop vfs-use-kstrdup.patch

    ---

    fs/namespace.c | 24 +++++++++++++-----------
    include/linux/mount.h | 2 +-
    2 files changed, 14 insertions(+), 12 deletions(-)

    diff --git a/fs/namespace.c b/fs/namespace.c
    index 4f6f763..e52e11f 100644
    --- a/fs/namespace.c
    +++ b/fs/namespace.c
    @@ -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;
    }

    /*
    diff --git a/include/linux/mount.h b/include/linux/mount.h
    index 4374d1a..b5efaa2 100644
    --- a/include/linux/mount.h
    +++ b/include/linux/mount.h
    @@ -47,7 +47,7 @@ struct vfsmount {
    struct list_head mnt_child; /* and going through their mnt_child */
    int mnt_flags;
    /* 4 bytes hole on 64bits arches */
    - char *mnt_devname; /* Name of device e.g. /dev/dsk/hda1 */
    + const char *mnt_devname; /* Name of device e.g. /dev/dsk/hda1 */
    struct list_head mnt_list;
    struct list_head mnt_expire; /* link in fs-specific expiry list */
    struct list_head mnt_share; /* circular list of shared mounts */
    --
    1.5.4.rc3

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

  2. Re: [PATCH] vfs: use kstrdup() and check failing allocation

    On Mon, 2008-07-21 at 14:16 +0400, Cyrill Gorcunov wrote:
    > [Li Zefan - Mon, Jul 21, 2008 at 06:06:36PM +0800]
    > | - use kstrdup() instead of kmalloc() + memcpy()
    > | - return NULL if allocating ->mnt_devname failed
    > | - mnt_devname should be const
    > |
    > | Signed-off-by: Li Zefan
    > | ---
    > |
    > | Andrew, please drop vfs-use-kstrdup.patch
    > |
    > | ---
    >
    > Thanks Li. I think Al will be fine with this version.
    >
    > So if you needed:
    > Acked-by: Cyrill Gorcunov


    Reviewed-by: Pekka Enberg

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

  3. Re: [PATCH] vfs: use kstrdup() and check failing allocation

    [Li Zefan - Mon, Jul 21, 2008 at 06:06:36PM +0800]
    | - use kstrdup() instead of kmalloc() + memcpy()
    | - return NULL if allocating ->mnt_devname failed
    | - mnt_devname should be const
    |
    | Signed-off-by: Li Zefan
    | ---
    |
    | Andrew, please drop vfs-use-kstrdup.patch
    |
    | ---

    Thanks Li. I think Al will be fine with this version.

    So if you needed:
    Acked-by: Cyrill Gorcunov

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

  4. Re: [PATCH] vfs: use kstrdup() and check failing allocation

    On Mon, Jul 21, 2008 at 02:16:23PM +0400, Cyrill Gorcunov wrote:
    > [Li Zefan - Mon, Jul 21, 2008 at 06:06:36PM +0800]
    > | - use kstrdup() instead of kmalloc() + memcpy()
    > | - return NULL if allocating ->mnt_devname failed
    > | - mnt_devname should be const
    > |
    > | Signed-off-by: Li Zefan
    > | ---
    > |
    > | Andrew, please drop vfs-use-kstrdup.patch
    > |
    > | ---
    >
    > Thanks Li. I think Al will be fine with this version.
    >
    > So if you needed:
    > Acked-by: Cyrill Gorcunov


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

  5. Re: [PATCH] vfs: use kstrdup() and check failing allocation

    [Al Viro - Mon, Jul 21, 2008 at 02:24:29PM +0100]
    [...]
    | > So if you needed:
    | > Acked-by: Cyrill Gorcunov
    |
    | Applied.
    |

    Thanks Al!

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

+ Reply to Thread