Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sbin Refactor remaining mount_* commands to use the common p...



details:   https://anonhg.NetBSD.org/src/rev/ad6adf57a3ea
branches:  trunk
changeset: 974193:ad6adf57a3ea
user:      mlelstv <mlelstv%NetBSD.org@localhost>
date:      Sun Jul 26 08:20:22 2020 +0000

description:
Refactor remaining mount_* commands to use the common pathadj()
function for resolving paths.

Make pathadj() no longer warn about symlinks. Symlinks in /dev are
regularly used in several places like LVM . The warning was also
only visible when calling a mount_* command directly as mount(8)
itself would resolve the path witout warning before passing it to
a mount_* command.

diffstat:

 sbin/mount/pathadj.c                 |  11 +++++++----
 sbin/mount_ados/Makefile             |   4 ++--
 sbin/mount_ados/mount_ados.c         |  22 ++++++----------------
 sbin/mount_autofs/Makefile           |   8 ++++++--
 sbin/mount_autofs/mount_autofs.c     |  12 ++++--------
 sbin/mount_fdesc/Makefile            |   8 ++++++--
 sbin/mount_fdesc/mount_fdesc.c       |  12 ++++--------
 sbin/mount_filecore/Makefile         |   4 ++--
 sbin/mount_filecore/mount_filecore.c |  23 +++++------------------
 sbin/mount_kernfs/Makefile           |   8 ++++++--
 sbin/mount_kernfs/mount_kernfs.c     |  12 ++++--------
 sbin/mount_null/Makefile             |   8 +++++---
 sbin/mount_null/mount_null.c         |  21 ++++++---------------
 sbin/mount_overlay/Makefile          |   8 +++++---
 sbin/mount_overlay/mount_overlay.c   |  21 ++++++---------------
 sbin/mount_procfs/Makefile           |   8 ++++++--
 sbin/mount_procfs/mount_procfs.c     |  13 +++++--------
 sbin/mount_ptyfs/Makefile            |   8 ++++++--
 sbin/mount_ptyfs/mount_ptyfs.c       |  13 +++++--------
 sbin/mount_umap/Makefile             |   8 +++++---
 sbin/mount_umap/mount_umap.c         |  21 ++++++---------------
 sbin/mount_union/Makefile            |   8 +++++---
 sbin/mount_union/mount_union.c       |  21 ++++++---------------
 23 files changed, 118 insertions(+), 164 deletions(-)

diffs (truncated from 736 to 300 lines):

diff -r 11280ba6b5dd -r ad6adf57a3ea sbin/mount/pathadj.c
--- a/sbin/mount/pathadj.c      Sun Jul 26 08:08:41 2020 +0000
+++ b/sbin/mount/pathadj.c      Sun Jul 26 08:20:22 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pathadj.c,v 1.2 2011/02/17 16:57:46 pooka Exp $        */
+/*     $NetBSD: pathadj.c,v 1.3 2020/07/26 08:20:22 mlelstv Exp $      */
 
 /*
  * Copyright (c) 2008 The NetBSD Foundation.  All Rights Reserved.
@@ -37,10 +37,13 @@
 pathadj(const char *input, char *adjusted)
 {
 
-       if (realpath(input, adjusted) == NULL)
+       if (realpath(input, adjusted) == NULL) {
                warn("Warning: realpath %s", input);
-       if (strncmp(input, adjusted, MAXPATHLEN)) {
-               warnx("\"%s\" is a non-resolved or relative path.", input);
+               return;
+       }
+
+       if (input[0] != '/') {
+               warnx("\"%s\" is a relative path.", input);
                warnx("using \"%s\" instead.", adjusted);
        }
 }
diff -r 11280ba6b5dd -r ad6adf57a3ea sbin/mount_ados/Makefile
--- a/sbin/mount_ados/Makefile  Sun Jul 26 08:08:41 2020 +0000
+++ b/sbin/mount_ados/Makefile  Sun Jul 26 08:20:22 2020 +0000
@@ -1,9 +1,9 @@
-#      $NetBSD: Makefile,v 1.13 2005/06/27 01:00:05 christos Exp $
+#      $NetBSD: Makefile,v 1.14 2020/07/26 08:20:22 mlelstv Exp $
 
 .include <bsd.own.mk>
 
 PROG=  mount_ados
-SRCS=  mount_ados.c fattr.c
+SRCS=  mount_ados.c fattr.c pathadj.c
 MAN=   mount_ados.8
 
 MOUNT= ${NETBSDSRCDIR}/sbin/mount
diff -r 11280ba6b5dd -r ad6adf57a3ea sbin/mount_ados/mount_ados.c
--- a/sbin/mount_ados/mount_ados.c      Sun Jul 26 08:08:41 2020 +0000
+++ b/sbin/mount_ados/mount_ados.c      Sun Jul 26 08:20:22 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mount_ados.c,v 1.29 2011/08/29 14:35:00 joerg Exp $ */
+/* $NetBSD: mount_ados.c,v 1.30 2020/07/26 08:20:22 mlelstv Exp $ */
 
 /*
  * Copyright (c) 1994 Christopher G. Demetriou
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: mount_ados.c,v 1.29 2011/08/29 14:35:00 joerg Exp $");
+__RCSID("$NetBSD: mount_ados.c,v 1.30 2020/07/26 08:20:22 mlelstv Exp $");
 #endif /* not lint */
 
 #include <sys/param.h>
@@ -120,21 +120,11 @@
        dev = argv[optind];
        dir = argv[optind + 1];
 
-       if (realpath(dev, canon_dev) == NULL)        /* Check device path */
-               err(1, "realpath %s", dev);
-       if (strncmp(dev, canon_dev, MAXPATHLEN)) {
-               warnx("\"%s\" is a relative path.", dev);
-               dev = canon_dev;
-               warnx("using \"%s\" instead.", dev);
-       }
+       pathadj(dev, canon_dev);
+       dev = canon_dev;
 
-       if (realpath(dir, canon_dir) == NULL)        /* Check mounton path */
-               err(1, "realpath %s", dir);
-       if (strncmp(dir, canon_dir, MAXPATHLEN)) {
-               warnx("\"%s\" is a relative path.", dir);
-               dir = canon_dir;
-               warnx("using \"%s\" instead.", dir);
-       }
+       pathadj(dir, canon_dir);
+       dir = canon_dir;
 
        args.fspec = dev;
        if (!set_gid || !set_uid || !set_mask) {
diff -r 11280ba6b5dd -r ad6adf57a3ea sbin/mount_autofs/Makefile
--- a/sbin/mount_autofs/Makefile        Sun Jul 26 08:08:41 2020 +0000
+++ b/sbin/mount_autofs/Makefile        Sun Jul 26 08:20:22 2020 +0000
@@ -1,12 +1,16 @@
-#      $NetBSD: Makefile,v 1.2 2018/01/22 09:45:32 kamil Exp $
+#      $NetBSD: Makefile,v 1.3 2020/07/26 08:20:22 mlelstv Exp $
 #      @(#)Makefile    8.2 (Berkeley) 3/27/94
 
 .include <bsd.own.mk>
 
 PROG=  mount_autofs
-SRCS=  mount_autofs.c
+SRCS=  mount_autofs.c pathadj.c
 MAN=   mount_autofs.8
 
+MOUNT=  ${NETBSDSRCDIR}/sbin/mount
+CPPFLAGS+= -I${NETBSDSRCDIR}/sys -I${MOUNT}
+.PATH:  ${MOUNT}
+
 DPADD+=${LIBUTIL}
 LDADD+=-lutil
 
diff -r 11280ba6b5dd -r ad6adf57a3ea sbin/mount_autofs/mount_autofs.c
--- a/sbin/mount_autofs/mount_autofs.c  Sun Jul 26 08:08:41 2020 +0000
+++ b/sbin/mount_autofs/mount_autofs.c  Sun Jul 26 08:20:22 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: mount_autofs.c,v 1.4 2019/11/20 17:18:35 tkusumi Exp $ */
+/*     $NetBSD: mount_autofs.c,v 1.5 2020/07/26 08:20:22 mlelstv Exp $ */
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: mount_autofs.c,v 1.4 2019/11/20 17:18:35 tkusumi Exp $");
+__RCSID("$NetBSD: mount_autofs.c,v 1.5 2020/07/26 08:20:22 mlelstv Exp $");
 #endif /* not lint */
 
 #include <sys/param.h>
@@ -46,6 +46,7 @@
 
 #include <fs/autofs/autofs_mount.h>
 
+#include "mountprog.h"
 #include "mount_autofs.h"
 
 static const struct mntopt mopts[] = {
@@ -102,12 +103,7 @@
                usage();
 
        strlcpy(canon_dev, argv[0], MAXPATHLEN);
-       if (realpath(argv[1], canon_dir) == NULL)    /* Check mounton path */
-               err(EXIT_FAILURE, "realpath %s", canon_dir);
-       if (strncmp(argv[1], canon_dir, MAXPATHLEN)) {
-               warnx("\"%s\" is a relative path.", argv[1]);
-               warnx("using \"%s\" instead.", canon_dir);
-       }
+       pathadj(argv[1], canon_dir);
 }
 
 int
diff -r 11280ba6b5dd -r ad6adf57a3ea sbin/mount_fdesc/Makefile
--- a/sbin/mount_fdesc/Makefile Sun Jul 26 08:08:41 2020 +0000
+++ b/sbin/mount_fdesc/Makefile Sun Jul 26 08:20:22 2020 +0000
@@ -1,12 +1,16 @@
-#      $NetBSD: Makefile,v 1.13 2005/06/27 01:00:05 christos Exp $
+#      $NetBSD: Makefile,v 1.14 2020/07/26 08:20:22 mlelstv Exp $
 #      @(#)Makefile    8.2 (Berkeley) 3/27/94
 
 .include <bsd.own.mk>
 
 PROG=  mount_fdesc
-SRCS=  mount_fdesc.c
+SRCS=  mount_fdesc.c pathadj.c
 MAN=   mount_fdesc.8
 
+MOUNT=  ${NETBSDSRCDIR}/sbin/mount
+CPPFLAGS+= -I${NETBSDSRCDIR}/sys -I${MOUNT}
+.PATH:  ${MOUNT}
+
 DPADD+=${LIBUTIL}
 LDADD+=-lutil
 
diff -r 11280ba6b5dd -r ad6adf57a3ea sbin/mount_fdesc/mount_fdesc.c
--- a/sbin/mount_fdesc/mount_fdesc.c    Sun Jul 26 08:08:41 2020 +0000
+++ b/sbin/mount_fdesc/mount_fdesc.c    Sun Jul 26 08:20:22 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: mount_fdesc.c,v 1.26 2011/08/29 14:35:00 joerg Exp $   */
+/*     $NetBSD: mount_fdesc.c,v 1.27 2020/07/26 08:20:22 mlelstv Exp $ */
 
 /*
  * Copyright (c) 1992, 1993, 1994
@@ -77,7 +77,7 @@
 #if 0
 static char sccsid[] = "@(#)mount_fdesc.c      8.3 (Berkeley) 4/26/95";
 #else
-__RCSID("$NetBSD: mount_fdesc.c,v 1.26 2011/08/29 14:35:00 joerg Exp $");
+__RCSID("$NetBSD: mount_fdesc.c,v 1.27 2020/07/26 08:20:22 mlelstv Exp $");
 #endif
 #endif /* not lint */
 
@@ -92,6 +92,7 @@
 
 #include <mntopts.h>
 
+#include "mountprog.h"
 #include "mount_fdesc.h"
 
 static const struct mntopt mopts[] = {
@@ -142,12 +143,7 @@
                exit(0);
 
        strlcpy(canon_dev, argv[0], MAXPATHLEN);
-       if (realpath(argv[1], canon_dir) == NULL)    /* Check mounton path */
-               err(1, "realpath %s", argv[1]);
-       if (strncmp(argv[1], canon_dir, MAXPATHLEN)) {
-               warnx("\"%s\" is a relative path.", argv[1]);
-               warnx("using \"%s\" instead.", canon_dir);
-       }
+       pathadj(argv[1], canon_dir);
 }
 
 int
diff -r 11280ba6b5dd -r ad6adf57a3ea sbin/mount_filecore/Makefile
--- a/sbin/mount_filecore/Makefile      Sun Jul 26 08:08:41 2020 +0000
+++ b/sbin/mount_filecore/Makefile      Sun Jul 26 08:20:22 2020 +0000
@@ -1,11 +1,11 @@
-#      $NetBSD: Makefile,v 1.8 2005/06/27 01:00:05 christos Exp $
+#      $NetBSD: Makefile,v 1.9 2020/07/26 08:20:22 mlelstv Exp $
 #
 #      Makefile        1.0     1998/6/26
 
 .include <bsd.own.mk>
 
 PROG=  mount_filecore
-SRCS=  mount_filecore.c fattr.c
+SRCS=  mount_filecore.c fattr.c pathadj.c
 MAN=   mount_filecore.8
 
 MOUNT= ${NETBSDSRCDIR}/sbin/mount
diff -r 11280ba6b5dd -r ad6adf57a3ea sbin/mount_filecore/mount_filecore.c
--- a/sbin/mount_filecore/mount_filecore.c      Sun Jul 26 08:08:41 2020 +0000
+++ b/sbin/mount_filecore/mount_filecore.c      Sun Jul 26 08:20:22 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mount_filecore.c,v 1.20 2011/08/29 14:35:01 joerg Exp $ */
+/* $NetBSD: mount_filecore.c,v 1.21 2020/07/26 08:20:22 mlelstv Exp $ */
 
 /*
  * Copyright (c) 1992, 1993, 1994 The Regents of the University of California.
@@ -165,24 +165,11 @@
        if (argc != 2)
                usage();
 
-       dev = argv[0];
-       dir = argv[1];
+       pathadj(argv[0], canon_dev);
+       dev = canon_dev;
 
-       if (realpath(dev, canon_dev) == NULL)        /* Check device path */
-               err(1, "realpath %s", dev);
-       if (strncmp(dev, canon_dev, MAXPATHLEN)) {
-               warnx("\"%s\" is a relative path.", dev);
-               dev = canon_dev;
-               warnx("using \"%s\" instead.", dev);
-       }
-
-       if (realpath(dir, canon_dir) == NULL)        /* Check mounton path */
-               err(1, "realpath %s", dir);
-       if (strncmp(dir, canon_dir, MAXPATHLEN)) {
-               warnx("\"%s\" is a relative path.", dir);
-               dir = canon_dir;
-               warnx("using \"%s\" instead.", dir);
-       }
+       pathadj(argv[0], canon_dir);
+       dir = canon_dir;
 
 #define DEFAULT_ROOTUID        -2
        /*
diff -r 11280ba6b5dd -r ad6adf57a3ea sbin/mount_kernfs/Makefile
--- a/sbin/mount_kernfs/Makefile        Sun Jul 26 08:08:41 2020 +0000
+++ b/sbin/mount_kernfs/Makefile        Sun Jul 26 08:20:22 2020 +0000
@@ -1,12 +1,16 @@
-#      $NetBSD: Makefile,v 1.13 2005/06/27 01:00:06 christos Exp $
+#      $NetBSD: Makefile,v 1.14 2020/07/26 08:20:22 mlelstv Exp $
 #      @(#)Makefile    8.2 (Berkeley) 3/27/94
 
 .include <bsd.own.mk>
 
 PROG=  mount_kernfs
-SRCS=  mount_kernfs.c
+SRCS=  mount_kernfs.c pathadj.c
 MAN=   mount_kernfs.8
 
+MOUNT=  ${NETBSDSRCDIR}/sbin/mount
+CPPFLAGS+= -I${NETBSDSRCDIR}/sys -I${MOUNT}
+.PATH:  ${MOUNT}
+
 DPADD+=${LIBUTIL}
 LDADD+=-lutil
 
diff -r 11280ba6b5dd -r ad6adf57a3ea sbin/mount_kernfs/mount_kernfs.c
--- a/sbin/mount_kernfs/mount_kernfs.c  Sun Jul 26 08:08:41 2020 +0000
+++ b/sbin/mount_kernfs/mount_kernfs.c  Sun Jul 26 08:20:22 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: mount_kernfs.c,v 1.25 2011/08/29 14:35:01 joerg Exp $  */
+/*     $NetBSD: mount_kernfs.c,v 1.26 2020/07/26 08:20:22 mlelstv Exp $        */
 
 /*
  * Copyright (c) 1992, 1993, 1994
@@ -77,7 +77,7 @@
 #if 0
 static char sccsid[] = "@(#)mount_kernfs.c     8.3 (Berkeley) 5/4/95";
 #else
-__RCSID("$NetBSD: mount_kernfs.c,v 1.25 2011/08/29 14:35:01 joerg Exp $");



Home | Main Index | Thread Index | Old Index