Author: markj
Date: Sun Dec  3 16:57:28 2017
New Revision: 326499
URL: https://svnweb.freebsd.org/changeset/base/326499

Log:
  Complete support for dtrace's -x setenv option.
  
  This allows one to override the environment for processes created with
  dtrace -c. By default, the environment is inherited.
  
  This support was originally merged from illumos in r249367 but was lost
  when the commit was later reverted and then brought back piecemeal.
  
  Reported by:  Samuel Lepetit <slepe...@apple.com>
  MFC after:    2 weeks

Added:
  head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/
  
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/err.D_PRAGMA_OPTSET.setfromscript.d
   (contents, props changed)
  
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/err.D_PRAGMA_OPTSET.unsetfromscript.d
   (contents, props changed)
  
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.ld_nolazyload.ksh
  
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.ld_nolazyload.ksh.out
  head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv1.ksh
  
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv1.ksh.out
  head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv2.ksh
  
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv2.ksh.out
  head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.unsetenv1.ksh
  
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.unsetenv1.ksh.out
   (contents, props changed)
  head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.unsetenv2.ksh
  
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.unsetenv2.ksh.out
Modified:
  head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c
  head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.c
  head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.h
  head/cddl/usr.sbin/dtrace/tests/common/Makefile
  head/cddl/usr.sbin/dtrace/tests/common/probes/Makefile
  head/cddl/usr.sbin/dtrace/tests/common/speculation/Makefile
  head/etc/mtree/BSD.tests.dist

Added: 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/err.D_PRAGMA_OPTSET.setfromscript.d
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/err.D_PRAGMA_OPTSET.setfromscript.d
    Sun Dec  3 16:57:28 2017        (r326499)
@@ -0,0 +1,25 @@
+/*
+ * CDDL HEADER START
+ *
+ * This file and its contents are supplied under the terms of the
+ * Common Development and Distribution License ("CDDL"), version 1.0.
+ * You may only use this file in accordance with the terms of version
+ * 1.0 of the CDDL.
+ *
+ * A full copy of the text of the CDDL should have accompanied this
+ * source.  A copy of the CDDL is also available via the Internet at
+ * http://www.illumos.org/license/CDDL.
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
+
+#pragma D option setenv=balloon=something_bad_happens
+
+BEGIN
+{
+       exit(0);
+}

Added: 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/err.D_PRAGMA_OPTSET.unsetfromscript.d
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/err.D_PRAGMA_OPTSET.unsetfromscript.d
  Sun Dec  3 16:57:28 2017        (r326499)
@@ -0,0 +1,25 @@
+/*
+ * CDDL HEADER START
+ *
+ * This file and its contents are supplied under the terms of the
+ * Common Development and Distribution License ("CDDL"), version 1.0.
+ * You may only use this file in accordance with the terms of version
+ * 1.0 of the CDDL.
+ *
+ * A full copy of the text of the CDDL should have accompanied this
+ * source.  A copy of the CDDL is also available via the Internet at
+ * http://www.illumos.org/license/CDDL.
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
+
+#pragma D option unsetenv=rectalexambot
+
+BEGIN
+{
+       exit(0);
+}

Added: 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.ld_nolazyload.ksh
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.ld_nolazyload.ksh
  Sun Dec  3 16:57:28 2017        (r326499)
@@ -0,0 +1,33 @@
+#
+# CDDL HEADER START
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source.  A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2012 by Delphix. All rights reserved.
+#
+
+#
+# Check that the LD_NOLAZYLOAD variable is set to 1 as expected.
+#
+
+if [ $# != 1 ]; then
+       echo expected one argument: '<'dtrace-path'>'
+       exit 2
+fi
+
+dtrace=$1
+
+$dtrace -q -Z -n doogle -c 'printenv LD_NOLAZYLOAD'
+
+exit $?

Added: 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.ld_nolazyload.ksh.out
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.ld_nolazyload.ksh.out
      Sun Dec  3 16:57:28 2017        (r326499)
@@ -0,0 +1,2 @@
+1
+

Added: 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv1.ksh
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv1.ksh    
    Sun Dec  3 16:57:28 2017        (r326499)
@@ -0,0 +1,33 @@
+#
+# CDDL HEADER START
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source.  A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2012 by Delphix. All rights reserved.
+#
+
+#
+# Reset an environment variable we already know to be set.
+#
+
+if [ $# != 1 ]; then
+       echo expected one argument: '<'dtrace-path'>'
+       exit 2
+fi
+
+dtrace=$1
+
+$dtrace -q -Z -n doogle -xsetenv=LD_NOLAZYLOAD=0 -c 'printenv LD_NOLAZYLOAD'
+
+exit $?

Added: 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv1.ksh.out
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv1.ksh.out
    Sun Dec  3 16:57:28 2017        (r326499)
@@ -0,0 +1,2 @@
+0
+

Added: 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv2.ksh
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv2.ksh    
    Sun Dec  3 16:57:28 2017        (r326499)
@@ -0,0 +1,33 @@
+#
+# CDDL HEADER START
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source.  A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2012 by Delphix. All rights reserved.
+#
+
+#
+# Test setting a variable that we isn't already set.
+#
+
+if [ $# != 1 ]; then
+       echo expected one argument: '<'dtrace-path'>'
+       exit 2
+fi
+
+dtrace=$1
+
+$dtrace -q -Z -n doogle -xsetenv=CORPORATIONS=PEOPLE -c 'printenv CORPORATIONS'
+
+exit $?

Added: 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv2.ksh.out
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.setenv2.ksh.out
    Sun Dec  3 16:57:28 2017        (r326499)
@@ -0,0 +1,2 @@
+PEOPLE
+

Added: 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.unsetenv1.ksh
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.unsetenv1.ksh  
    Sun Dec  3 16:57:28 2017        (r326499)
@@ -0,0 +1,33 @@
+#
+# CDDL HEADER START
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source.  A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2012 by Delphix. All rights reserved.
+#
+
+#
+# Test unsetting a variable we know to be set.
+#
+
+if [ $# != 1 ]; then
+       echo expected one argument: '<'dtrace-path'>'
+       exit 2
+fi
+
+dtrace=$1
+
+$dtrace -q -Z -n doogle -xunsetenv=LD_NOLAZYLOAD -c 'printenv LD_NOLAZYLOAD'
+
+exit $?

Added: 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.unsetenv1.ksh.out
==============================================================================
Binary file. No diff available.

Added: 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.unsetenv2.ksh
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.unsetenv2.ksh  
    Sun Dec  3 16:57:28 2017        (r326499)
@@ -0,0 +1,35 @@
+#
+# CDDL HEADER START
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source.  A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2012 by Delphix. All rights reserved.
+#
+
+#
+# Test invalid syntax to the unsetenv option.
+#
+
+if [ $# != 1 ]; then
+       echo expected one argument: '<'dtrace-path'>'
+       exit 2
+fi
+
+dtrace=$1
+
+$dtrace -q -Z -n doogle -xunsetenv=ed=screven -c 'true' 2>&1
+
+[[ $? -eq 1 ]] && exit 0
+
+exit 1

Added: 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.unsetenv2.ksh.out
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ 
head/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/env/tst.unsetenv2.ksh.out
  Sun Dec  3 16:57:28 2017        (r326499)
@@ -0,0 +1 @@
+dtrace: failed to set -x unsetenv: Invalid value for specified option

Modified: head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c        Sun Dec 
 3 16:50:16 2017        (r326498)
+++ head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c        Sun Dec 
 3 16:57:28 2017        (r326499)
@@ -1182,7 +1182,7 @@ alloc:
 #endif
        dtp->dt_provbuckets = _dtrace_strbuckets;
        dtp->dt_provs = calloc(dtp->dt_provbuckets, sizeof (dt_provider_t *));
-       dt_proc_hash_create(dtp);
+       dt_proc_init(dtp);
        dtp->dt_vmax = DT_VERS_LATEST;
        dtp->dt_cpp_path = strdup(_dtrace_defcpp);
        dtp->dt_cpp_argv = malloc(sizeof (char *));
@@ -1199,12 +1199,13 @@ alloc:
        (void) uname(&dtp->dt_uts);
 
        if (dtp->dt_mods == NULL || dtp->dt_provs == NULL ||
-           dtp->dt_procs == NULL || dtp->dt_ld_path == NULL ||
+           dtp->dt_procs == NULL || dtp->dt_proc_env == NULL ||
+           dtp->dt_ld_path == NULL || dtp->dt_cpp_path == NULL ||
 #ifdef __FreeBSD__
            dtp->dt_kmods == NULL ||
            dtp->dt_objcopy_path == NULL ||
 #endif
-           dtp->dt_cpp_path == NULL || dtp->dt_cpp_argv == NULL)
+           dtp->dt_cpp_argv == NULL)
                return (set_open_errno(dtp, errp, EDT_NOMEM));
 
        for (i = 0; i < DTRACEOPT_MAX; i++)
@@ -1631,7 +1632,7 @@ dtrace_close(dtrace_hdl_t *dtp)
        int i;
 
        if (dtp->dt_procs != NULL)
-               dt_proc_hash_destroy(dtp);
+               dt_proc_fini(dtp);
 
        while ((pgp = dt_list_next(&dtp->dt_programs)) != NULL)
                dt_program_destroy(dtp, pgp);

Modified: head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.c
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.c        Sun Dec 
 3 16:50:16 2017        (r326498)
+++ head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.c        Sun Dec 
 3 16:57:28 2017        (r326499)
@@ -25,6 +25,10 @@
  */
 
 /*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
+
+/*
  * DTrace Process Control
  *
  * This file provides a set of routines that permit libdtrace and its clients
@@ -504,7 +508,7 @@ dt_proc_control(void *arg)
        dt_proc_control_data_t *datap = arg;
        dtrace_hdl_t *dtp = datap->dpcd_hdl;
        dt_proc_t *dpr = datap->dpcd_proc;
-       dt_proc_hash_t *dph = dpr->dpr_hdl->dt_procs;
+       dt_proc_hash_t *dph = dtp->dt_procs;
        struct ps_prochandle *P = dpr->dpr_proc;
        int pid = dpr->dpr_pid;
 
@@ -965,14 +969,18 @@ dt_proc_create(dtrace_hdl_t *dtp, const char *file, ch
        (void) pthread_cond_init(&dpr->dpr_cv, NULL);
 
 #ifdef illumos
-       if ((dpr->dpr_proc = Pcreate(file, argv, &err, NULL, 0)) == NULL) {
+       dpr->dpr_proc = Pxcreate(file, argv, dtp->dt_proc_env, &err, NULL, 0);
+       if (dpr->dpr_proc == NULL) {
+               return (dt_proc_error(dtp, dpr,
+                   "failed to execute %s: %s\n", file, Pcreate_error(err)));
+       }
 #else
-       if ((err = proc_create(file, argv, NULL, pcf, child_arg,
+       if ((err = proc_create(file, argv, dtp->dt_proc_env, pcf, child_arg,
            &dpr->dpr_proc)) != 0) {
-#endif
                return (dt_proc_error(dtp, dpr,
                    "failed to execute %s: %s\n", file, Pcreate_error(err)));
        }
+#endif
 
        dpr->dpr_hdl = dtp;
 #ifdef illumos
@@ -1141,30 +1149,74 @@ dt_proc_unlock(dtrace_hdl_t *dtp, struct ps_prochandle
 }
 
 void
-dt_proc_hash_create(dtrace_hdl_t *dtp)
+dt_proc_init(dtrace_hdl_t *dtp)
 {
+       extern char **environ;
+       static char *envdef[] = {
+               "LD_NOLAZYLOAD=1",      /* linker lazy loading hides funcs */
+               NULL
+       };
+       char **p;
+       int i;
+
        if ((dtp->dt_procs = dt_zalloc(dtp, sizeof (dt_proc_hash_t) +
-           sizeof (dt_proc_t *) * _dtrace_pidbuckets - 1)) != NULL) {
+           sizeof (dt_proc_t *) * _dtrace_pidbuckets - 1)) == NULL)
+               return;
 
-               (void) pthread_mutex_init(&dtp->dt_procs->dph_lock, NULL);
-               (void) pthread_cond_init(&dtp->dt_procs->dph_cv, NULL);
+       (void) pthread_mutex_init(&dtp->dt_procs->dph_lock, NULL);
+       (void) pthread_cond_init(&dtp->dt_procs->dph_cv, NULL);
 
-               dtp->dt_procs->dph_hashlen = _dtrace_pidbuckets;
-               dtp->dt_procs->dph_lrulim = _dtrace_pidlrulim;
+       dtp->dt_procs->dph_hashlen = _dtrace_pidbuckets;
+       dtp->dt_procs->dph_lrulim = _dtrace_pidlrulim;
+
+       /*
+        * Count how big our environment needs to be.
+        */
+       for (i = 1, p = environ; *p != NULL; i++, p++)
+               continue;
+       for (p = envdef; *p != NULL; i++, p++)
+               continue;
+
+       if ((dtp->dt_proc_env = dt_zalloc(dtp, sizeof (char *) * i)) == NULL)
+               return;
+
+       for (i = 0, p = environ; *p != NULL; i++, p++) {
+               if ((dtp->dt_proc_env[i] = strdup(*p)) == NULL)
+                       goto err;
        }
+       for (p = envdef; *p != NULL; i++, p++) {
+               if ((dtp->dt_proc_env[i] = strdup(*p)) == NULL)
+                       goto err;
+       }
+
+       return;
+
+err:
+       while (--i != 0) {
+               dt_free(dtp, dtp->dt_proc_env[i]);
+       }
+       dt_free(dtp, dtp->dt_proc_env);
+       dtp->dt_proc_env = NULL;
 }
 
 void
-dt_proc_hash_destroy(dtrace_hdl_t *dtp)
+dt_proc_fini(dtrace_hdl_t *dtp)
 {
        dt_proc_hash_t *dph = dtp->dt_procs;
        dt_proc_t *dpr;
+       char **p;
 
        while ((dpr = dt_list_next(&dph->dph_lrulist)) != NULL)
                dt_proc_destroy(dtp, dpr->dpr_proc);
 
        dtp->dt_procs = NULL;
        dt_free(dtp, dph);
+
+       for (p = dtp->dt_proc_env; *p != NULL; p++)
+               dt_free(dtp, *p);
+
+       dt_free(dtp, dtp->dt_proc_env);
+       dtp->dt_proc_env = NULL;
 }
 
 struct ps_prochandle *

Modified: head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.h
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.h        Sun Dec 
 3 16:50:16 2017        (r326498)
+++ head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.h        Sun Dec 
 3 16:57:28 2017        (r326499)
@@ -24,11 +24,13 @@
  * Use is subject to license terms.
  */
 
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
+
 #ifndef        _DT_PROC_H
 #define        _DT_PROC_H
 
-#pragma ident  "%Z%%M% %I%     %E% SMI"
-
 #include <libproc.h>
 #include <dtrace.h>
 #include <pthread.h>
@@ -106,8 +108,8 @@ extern void dt_proc_lock(dtrace_hdl_t *, struct ps_pro
 extern void dt_proc_unlock(dtrace_hdl_t *, struct ps_prochandle *);
 extern dt_proc_t *dt_proc_lookup(dtrace_hdl_t *, struct ps_prochandle *, int);
 
-extern void dt_proc_hash_create(dtrace_hdl_t *);
-extern void dt_proc_hash_destroy(dtrace_hdl_t *);
+extern void dt_proc_init(dtrace_hdl_t *);
+extern void dt_proc_fini(dtrace_hdl_t *);
 
 #ifdef __cplusplus
 }

Modified: head/cddl/usr.sbin/dtrace/tests/common/Makefile
==============================================================================
--- head/cddl/usr.sbin/dtrace/tests/common/Makefile     Sun Dec  3 16:50:16 
2017        (r326498)
+++ head/cddl/usr.sbin/dtrace/tests/common/Makefile     Sun Dec  3 16:57:28 
2017        (r326499)
@@ -19,6 +19,7 @@ TESTS_SUBDIRS+= aggs \
                drops \
                dtraceUtil \
                end \
+               env \
                enum \
                error \
                exit \

Modified: head/cddl/usr.sbin/dtrace/tests/common/probes/Makefile
==============================================================================
--- head/cddl/usr.sbin/dtrace/tests/common/probes/Makefile      Sun Dec  3 
16:50:16 2017        (r326498)
+++ head/cddl/usr.sbin/dtrace/tests/common/probes/Makefile      Sun Dec  3 
16:57:28 2017        (r326499)
@@ -35,5 +35,4 @@ CFILES= \
      tst.probestar.c  \
 
 
-
 .include "../../dtrace.test.mk"

Modified: head/cddl/usr.sbin/dtrace/tests/common/speculation/Makefile
==============================================================================
--- head/cddl/usr.sbin/dtrace/tests/common/speculation/Makefile Sun Dec  3 
16:50:16 2017        (r326498)
+++ head/cddl/usr.sbin/dtrace/tests/common/speculation/Makefile Sun Dec  3 
16:57:28 2017        (r326499)
@@ -70,7 +70,6 @@ ${PACKAGE}FILES= \
 TESTEXES= \
      tst.NoSpecBuffer.exe  \
 
-
 CFILES= \
 
 

Modified: head/etc/mtree/BSD.tests.dist
==============================================================================
--- head/etc/mtree/BSD.tests.dist       Sun Dec  3 16:50:16 2017        
(r326498)
+++ head/etc/mtree/BSD.tests.dist       Sun Dec  3 16:57:28 2017        
(r326499)
@@ -101,6 +101,8 @@
                     ..
                     end
                     ..
+                    env
+                    ..
                     enum
                     ..
                     error
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to