svn commit: r359408 - head/stand/libsa/zfs

Oliver Pinter oliver.pntr at gmail.com
Sat Mar 28 22:12:06 UTC 2020


On Saturday, March 28, 2020, Toomas Soome <tsoome at freebsd.org> wrote:

> Author: tsoome
> Date: Sat Mar 28 21:50:27 2020
> New Revision: 359408
> URL: https://svnweb.freebsd.org/changeset/base/359408
>
> Log:
>   loader: strdup name strings from dataset walker
>
>   The removal of zfs scratch buffer did miss the fact the dataset
>   lookup was picking up the names from zap list.
>
> Modified:
>   head/stand/libsa/zfs/zfs.c
>
> Modified: head/stand/libsa/zfs/zfs.c
> ============================================================
> ==================
> --- head/stand/libsa/zfs/zfs.c  Sat Mar 28 21:47:44 2020        (r359407)
> +++ head/stand/libsa/zfs/zfs.c  Sat Mar 28 21:50:27 2020        (r359408)
> @@ -92,7 +92,7 @@ static int    zfs_env_count;
>  SLIST_HEAD(zfs_be_list, zfs_be_entry) zfs_be_head =
> SLIST_HEAD_INITIALIZER(zfs_be_head);
>  struct zfs_be_list *zfs_be_headp;
>  struct zfs_be_entry {
> -       const char *name;
> +       cha *name;


I think this will be "char *".


>         SLIST_ENTRY(zfs_be_entry) entries;
>  } *zfs_be, *zfs_be_tmp;
>
> @@ -906,6 +906,7 @@ zfs_bootenv_initial(const char *name)
>         while (!SLIST_EMPTY(&zfs_be_head)) {
>                 zfs_be = SLIST_FIRST(&zfs_be_head);
>                 SLIST_REMOVE_HEAD(&zfs_be_head, entries);
> +               free(zfs_be->name);
>                 free(zfs_be);
>         }
>
> @@ -973,6 +974,7 @@ zfs_bootenv(const char *name)
>         while (!SLIST_EMPTY(&zfs_be_head)) {
>                 zfs_be = SLIST_FIRST(&zfs_be_head);
>                 SLIST_REMOVE_HEAD(&zfs_be_head, entries);
> +               free(zfs_be->name);
>                 free(zfs_be);
>         }
>
> @@ -992,7 +994,11 @@ zfs_belist_add(const char *name, uint64_t value __unus
>         if (zfs_be == NULL) {
>                 return (ENOMEM);
>         }
> -       zfs_be->name = name;
> +       zfs_be->name = strdup(name);
> +       if (zfs_be->name == NULL) {
> +               free(zfs_be);
> +               return (ENOMEM);
> +       }
>         SLIST_INSERT_HEAD(&zfs_be_head, zfs_be, entries);
>         zfs_env_count++;
>
> _______________________________________________
> svn-src-head at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscribe at freebsd.org"
>


More information about the svn-src-all mailing list