]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
Require symlink support
authorChristian Göttsche <cgzones@googlemail.com>
Fri, 5 Aug 2022 15:57:24 +0000 (17:57 +0200)
committerSerge Hallyn <serge@hallyn.com>
Wed, 17 Aug 2022 17:34:01 +0000 (12:34 -0500)
Require lstat(2), lchown(2), S_IFLNK and S_ISLNK from POSIX.1-2001.

Already unconditionally used in lib/tcbfuncs.c and lib/run_part.c.

configure.ac
lib/commonio.c
lib/defines.h
libmisc/copydir.c

index b9a2263bb6f775168aed90f4cfa41ed05c75a5d2..7e954c29ca732b01537fd1ddab2ef4b977e0322f 100644 (file)
@@ -49,7 +49,7 @@ AC_CHECK_HEADER([shadow.h],,[AC_MSG_ERROR([You need a libc with shadow.h])])
 
 AC_CHECK_FUNCS(arc4random_buf l64a fchmod fchown fsync futimes \
        getentropy getrandom getspnam getusershell \
-       getutent initgroups lchown lckpwdf lstat lutimes \
+       getutent initgroups lckpwdf lutimes \
        setgroups updwtmp updwtmpx innetgr getpwnam_r \
        getpwuid_r getgrnam_r getgrgid_r getspnam_r \
        memset_s explicit_bzero)
index 9e0fde60018c9a01a4b586de35dc103e4da333e7..80288d64498c2ff4e030aae5207167191851809e 100644 (file)
@@ -65,7 +65,6 @@ int lrename (const char *old, const char *new)
        int res;
        char *r = NULL;
 
-#if defined(S_ISLNK)
 #ifndef __GLIBC__
        char resolved_path[PATH_MAX];
 #endif                         /* !__GLIBC__ */
@@ -82,7 +81,6 @@ int lrename (const char *old, const char *new)
                        new = r;
                }
        }
-#endif                         /* S_ISLNK */
 
        res = rename (old, new);
 
index 4a2b90c9e8068e9ec8ad75541a283e7e371b9d6a..ee33aa0dacf7d4f89a995365e50ac01a4227bd18 100644 (file)
@@ -205,22 +205,6 @@ static inline void memzero(void *ptr, size_t size)
 # define SEEK_END 2
 #endif
 
-#ifndef S_ISLNK
-#define S_ISLNK(x) (0)
-#endif
-
-#if HAVE_LCHOWN
-#define LCHOWN lchown
-#else
-#define LCHOWN chown
-#endif
-
-#if HAVE_LSTAT
-#define LSTAT lstat
-#else
-#define LSTAT stat
-#endif
-
 #if HAVE_TERMIOS_H
 # include <termios.h>
 # define STTY(fd, termio) tcsetattr(fd, TCSANOW, termio)
index 2929151db8466d38f1556dccbe9d440bcd01de6a..648f562a15fe9bd7dd2b7f893375f03e529c4750 100644 (file)
@@ -56,14 +56,12 @@ static int copy_dir (const char *src, const char *dst,
                      const struct stat *statp, const struct timeval mt[],
                      uid_t old_uid, uid_t new_uid,
                      gid_t old_gid, gid_t new_gid);
-#ifdef S_IFLNK
 static /*@null@*/char *readlink_malloc (const char *filename);
 static int copy_symlink (const char *src, const char *dst,
                          unused bool reset_selinux,
                          const struct stat *statp, const struct timeval mt[],
                          uid_t old_uid, uid_t new_uid,
                          gid_t old_gid, gid_t new_gid);
-#endif                         /* S_IFLNK */
 static int copy_hardlink (const char *dst,
                           unused bool reset_selinux,
                           struct link_name *lp);
@@ -223,7 +221,7 @@ int copy_tree (const char *src_root, const char *dst_root,
                        return -1;
                }
 
-               if (LSTAT (src_root, &sb) == -1) {
+               if (lstat (src_root, &sb) == -1) {
                        return -1;
                }
 
@@ -364,7 +362,7 @@ static int copy_entry (const char *src, const char *dst,
        struct link_name *lp;
        struct timeval mt[2];
 
-       if (LSTAT (src, &sb) == -1) {
+       if (lstat (src, &sb) == -1) {
                /* If we cannot stat the file, do not care. */
        } else {
 #ifdef HAVE_STRUCT_STAT_ST_ATIM
@@ -396,7 +394,6 @@ static int copy_entry (const char *src, const char *dst,
                                        old_uid, new_uid, old_gid, new_gid);
                }
 
-#ifdef S_IFLNK
                /*
                 * Copy any symbolic links
                 */
@@ -405,7 +402,6 @@ static int copy_entry (const char *src, const char *dst,
                        err = copy_symlink (src, dst, reset_selinux, &sb, mt,
                                            old_uid, new_uid, old_gid, new_gid);
                }
-#endif                         /* S_IFLNK */
 
                /*
                 * See if this is a previously copied link
@@ -498,7 +494,6 @@ static int copy_dir (const char *src, const char *dst,
        return err;
 }
 
-#ifdef S_IFLNK
 /*
  * readlink_malloc - wrapper for readlink
  *
@@ -616,7 +611,6 @@ static int copy_symlink (const char *src, const char *dst,
 
        return 0;
 }
-#endif                         /* S_IFLNK */
 
 /*
  * copy_hardlink - copy a hardlink