Author: mav
Date: Thu Mar 22 23:53:18 2018
New Revision: 331394
URL: https://svnweb.freebsd.org/changeset/base/331394

Log:
  MFC r329668: MFV r316918:
  7990 libzfs: snapspec_cb() does not need to call zfs_strdup()
  
  illumos/illumos-gate@d8584ba6fb7a5e46da1725845b99ae5fab5a4baf
  
https://github.com/illumos/illumos-gate/commit/d8584ba6fb7a5e46da1725845b99ae5fab5a4baf
  
  https://www.illumos.org/issues/7990
    The snapspec_cb() callback function in libzfs does not need to call 
zfs_strdup().
  
  Reviewed by: Yuri Pankov <yuri.pan...@gmail.com>
  Reviewed by: Toomas Soome <tso...@me.com>
  Approved by: Matthew Ahrens <mahr...@delphix.com>
  Author: Marcel Telka <mar...@telka.sk>

Modified:
  stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c
==============================================================================
--- stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c  Thu Mar 
22 23:52:37 2018        (r331393)
+++ stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c  Thu Mar 
22 23:53:18 2018        (r331394)
@@ -317,26 +317,23 @@ static int
 snapspec_cb(zfs_handle_t *zhp, void *arg)
 {
        snapspec_arg_t *ssa = arg;
-       char *shortsnapname;
+       const char *shortsnapname;
        int err = 0;
 
        if (ssa->ssa_seenlast)
                return (0);
-       shortsnapname = zfs_strdup(zhp->zfs_hdl,
-           strchr(zfs_get_name(zhp), '@') + 1);
 
+       shortsnapname = strchr(zfs_get_name(zhp), '@') + 1;
        if (!ssa->ssa_seenfirst && strcmp(shortsnapname, ssa->ssa_first) == 0)
                ssa->ssa_seenfirst = B_TRUE;
+       if (strcmp(shortsnapname, ssa->ssa_last) == 0)
+               ssa->ssa_seenlast = B_TRUE;
 
        if (ssa->ssa_seenfirst) {
                err = ssa->ssa_func(zhp, ssa->ssa_arg);
        } else {
                zfs_close(zhp);
        }
-
-       if (strcmp(shortsnapname, ssa->ssa_last) == 0)
-               ssa->ssa_seenlast = B_TRUE;
-       free(shortsnapname);
 
        return (err);
 }
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to