Print this page
6659 nvlist_free(NULL) is a no-op

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libzfs/common/libzfs_pool.c
          +++ new/usr/src/lib/libzfs/common/libzfs_pool.c
↓ open down ↓ 1017 lines elided ↑ open up ↑
1018 1018  
1019 1019          return (zhp);
1020 1020  }
1021 1021  
1022 1022  /*
1023 1023   * Close the handle.  Simply frees the memory associated with the handle.
1024 1024   */
1025 1025  void
1026 1026  zpool_close(zpool_handle_t *zhp)
1027 1027  {
1028      -        if (zhp->zpool_config)
1029      -                nvlist_free(zhp->zpool_config);
1030      -        if (zhp->zpool_old_config)
1031      -                nvlist_free(zhp->zpool_old_config);
1032      -        if (zhp->zpool_props)
1033      -                nvlist_free(zhp->zpool_props);
     1028 +        nvlist_free(zhp->zpool_config);
     1029 +        nvlist_free(zhp->zpool_old_config);
     1030 +        nvlist_free(zhp->zpool_props);
1034 1031          free(zhp);
1035 1032  }
1036 1033  
1037 1034  /*
1038 1035   * Return the name of the pool.
1039 1036   */
1040 1037  const char *
1041 1038  zpool_get_name(zpool_handle_t *zhp)
1042 1039  {
1043 1040          return (zhp->zpool_name);
↓ open down ↓ 497 lines elided ↑ open up ↑
1541 1538                      zpool_prop_to_name(ZPOOL_PROP_CACHEFILE), "none") != 0) {
1542 1539                          nvlist_free(props);
1543 1540                          return (zfs_error_fmt(hdl, EZFS_NOMEM,
1544 1541                              dgettext(TEXT_DOMAIN, "cannot import '%s'"),
1545 1542                              newname));
1546 1543                  }
1547 1544          }
1548 1545  
1549 1546          ret = zpool_import_props(hdl, config, newname, props,
1550 1547              ZFS_IMPORT_NORMAL);
1551      -        if (props)
1552      -                nvlist_free(props);
     1548 +        nvlist_free(props);
1553 1549          return (ret);
1554 1550  }
1555 1551  
1556 1552  static void
1557 1553  print_vdev_tree(libzfs_handle_t *hdl, const char *name, nvlist_t *nv,
1558 1554      int indent)
1559 1555  {
1560 1556          nvlist_t **child;
1561 1557          uint_t c, children;
1562 1558          char *vname;
↓ open down ↓ 1284 lines elided ↑ open up ↑
2847 2843                  prop_flags_t flags = { .create = B_FALSE, .import = B_TRUE };
2848 2844                  if ((zc_props = zpool_valid_proplist(hdl, zhp->zpool_name,
2849 2845                      props, vers, flags, msg)) == NULL)
2850 2846                          return (-1);
2851 2847          }
2852 2848  
2853 2849          if (nvlist_lookup_nvlist_array(tree, ZPOOL_CONFIG_CHILDREN, &child,
2854 2850              &children) != 0) {
2855 2851                  zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
2856 2852                      "Source pool is missing vdev tree"));
2857      -                if (zc_props)
2858      -                        nvlist_free(zc_props);
     2853 +                nvlist_free(zc_props);
2859 2854                  return (-1);
2860 2855          }
2861 2856  
2862 2857          varray = zfs_alloc(hdl, children * sizeof (nvlist_t *));
2863 2858          vcount = 0;
2864 2859  
2865 2860          if (*newroot == NULL ||
2866 2861              nvlist_lookup_nvlist_array(*newroot, ZPOOL_CONFIG_CHILDREN,
2867 2862              &newchild, &newchildren) != 0)
2868 2863                  newchildren = 0;
↓ open down ↓ 127 lines elided ↑ open up ↑
2996 2991  
2997 2992  out:
2998 2993          if (varray != NULL) {
2999 2994                  int v;
3000 2995  
3001 2996                  for (v = 0; v < vcount; v++)
3002 2997                          nvlist_free(varray[v]);
3003 2998                  free(varray);
3004 2999          }
3005 3000          zcmd_free_nvlists(&zc);
3006      -        if (zc_props)
3007      -                nvlist_free(zc_props);
3008      -        if (newconfig)
3009      -                nvlist_free(newconfig);
     3001 +        nvlist_free(zc_props);
     3002 +        nvlist_free(newconfig);
3010 3003          if (freelist) {
3011 3004                  nvlist_free(*newroot);
3012 3005                  *newroot = NULL;
3013 3006          }
3014 3007  
3015 3008          if (retval != 0)
3016 3009                  return (retval);
3017 3010  
3018 3011          if (memory_err)
3019 3012                  return (no_memory(hdl));
↓ open down ↓ 1024 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX