Accepting request 42907 from Base:System
Copy from Base:System/coreutils based on submit request 42907 from user oertel OBS-URL: https://build.opensuse.org/request/show/42907 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/coreutils?expand=0&rev=43
This commit is contained in:
commit
7ea9295348
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,8 @@
|
||||
Index: src/su.c
|
||||
===================================================================
|
||||
--- src/su.c.orig 2010-05-04 17:29:12.779359204 +0200
|
||||
+++ src/su.c 2010-05-04 17:29:12.939359620 +0200
|
||||
@@ -467,6 +467,117 @@ correct_password (const struct passwd *p
|
||||
--- src/su.c.orig 2010-05-05 14:46:48.000000000 +0200
|
||||
+++ src/su.c 2010-05-05 14:48:55.023359308 +0200
|
||||
@@ -454,6 +454,117 @@ correct_password (const struct passwd *p
|
||||
#endif /* !USE_PAM */
|
||||
}
|
||||
|
||||
@ -120,7 +120,7 @@ Index: src/su.c
|
||||
/* Update `environ' for the new shell based on PW, with SHELL being
|
||||
the value for the SHELL environment variable. */
|
||||
|
||||
@@ -506,6 +617,22 @@ modify_environment (const struct passwd
|
||||
@@ -493,6 +604,22 @@ modify_environment (const struct passwd
|
||||
DEFAULT_LOGIN_PATH)
|
||||
: getdef_str ("SUPATH",
|
||||
DEFAULT_ROOT_LOGIN_PATH)));
|
||||
@ -140,6 +140,6 @@ Index: src/su.c
|
||||
+ free (new);
|
||||
+ }
|
||||
+ }
|
||||
if (pw->pw_uid)
|
||||
{
|
||||
xsetenv ("USER", pw->pw_name);
|
||||
if (pw->pw_uid)
|
||||
{
|
||||
xsetenv ("USER", pw->pw_name);
|
@ -1,6 +1,10 @@
|
||||
--- Makefile.in
|
||||
+++ Makefile.in
|
||||
@@ -732,6 +732,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
Add pam support in su
|
||||
|
||||
Index: Makefile.in
|
||||
===================================================================
|
||||
--- Makefile.in.orig 2010-04-23 17:58:41.000000000 +0200
|
||||
+++ Makefile.in 2010-05-06 19:37:44.784359208 +0200
|
||||
@@ -961,6 +961,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
@ -8,41 +12,35 @@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
POSIX_SHELL = @POSIX_SHELL@
|
||||
--- configure
|
||||
+++ configure
|
||||
@@ -612,6 +612,7 @@ OPTIONAL_BIN_PROGS
|
||||
Index: configure
|
||||
===================================================================
|
||||
--- configure.orig 2010-05-06 19:37:44.688359301 +0200
|
||||
+++ configure 2010-05-06 19:37:44.816359169 +0200
|
||||
@@ -631,6 +631,7 @@ OPTIONAL_BIN_PROGS
|
||||
INSTALL_SU
|
||||
LIB_GMP
|
||||
LIB_CRYPT
|
||||
+PAM_LIBS
|
||||
GNULIB_WARN_CFLAGS
|
||||
WERROR_CFLAGS
|
||||
SEQ_LIBM
|
||||
LIB_CAP
|
||||
@@ -1231,6 +1232,7 @@ with_included_regex
|
||||
enable_xattr
|
||||
@@ -1501,6 +1502,7 @@ enable_xattr
|
||||
enable_libcap
|
||||
with_tty_group
|
||||
enable_gcc_warnings
|
||||
+enable_pam
|
||||
with_gmp
|
||||
enable_install_program
|
||||
enable_no_install_program
|
||||
@@ -1877,6 +1879,7 @@ Optional Features:
|
||||
@@ -2152,6 +2154,7 @@ Optional Features:
|
||||
--disable-xattr do not support extended attributes
|
||||
--disable-libcap disable libcap support
|
||||
--enable-gcc-warnings turn on lots of GCC warnings (not recommended)
|
||||
+ --disable-pam Enable PAM support in su (default=auto)
|
||||
--enable-gcc-warnings turn on lots of GCC warnings (for developers)
|
||||
+ --disable-pam Disable PAM support in su (default=auto)
|
||||
--enable-install-program=PROG_LIST
|
||||
install the programs in PROG_LIST (comma-separated,
|
||||
default: none)
|
||||
@@ -26931,7 +26934,6 @@ fi
|
||||
|
||||
|
||||
|
||||
-
|
||||
XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --keyword='proper_name:1,\"This is a proper name. See the gettext manual, section Names.\"'"
|
||||
|
||||
|
||||
@@ -39096,6 +39098,111 @@ $as_echo "#define HAVE_WORKING_FORK 1" >
|
||||
@@ -51989,6 +51992,111 @@ $as_echo "#define HAVE_WORKING_FORK 1" >
|
||||
fi
|
||||
|
||||
|
||||
@ -152,11 +150,13 @@
|
||||
+$as_echo "$enable_pam" >&6; }
|
||||
+
|
||||
optional_bin_progs=
|
||||
for ac_func in uname
|
||||
do
|
||||
--- configure.ac
|
||||
+++ configure.ac
|
||||
@@ -79,6 +79,20 @@ fi
|
||||
for ac_func in chroot
|
||||
do :
|
||||
Index: configure.ac
|
||||
===================================================================
|
||||
--- configure.ac.orig 2010-03-13 16:14:09.000000000 +0100
|
||||
+++ configure.ac 2010-05-06 19:37:44.843292013 +0200
|
||||
@@ -128,6 +128,20 @@ fi
|
||||
|
||||
AC_FUNC_FORK
|
||||
|
||||
@ -175,11 +175,13 @@
|
||||
+AC_MSG_RESULT([$enable_pam])
|
||||
+
|
||||
optional_bin_progs=
|
||||
AC_CHECK_FUNCS([uname],
|
||||
gl_ADD_PROG([optional_bin_progs], [uname]))
|
||||
--- doc/Makefile.in
|
||||
+++ doc/Makefile.in
|
||||
@@ -713,6 +713,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
AC_CHECK_FUNCS([chroot],
|
||||
gl_ADD_PROG([optional_bin_progs], [chroot]))
|
||||
Index: doc/Makefile.in
|
||||
===================================================================
|
||||
--- doc/Makefile.in.orig 2010-04-23 17:58:37.000000000 +0200
|
||||
+++ doc/Makefile.in 2010-05-06 19:37:44.868359246 +0200
|
||||
@@ -957,6 +957,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
@ -187,9 +189,11 @@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
POSIX_SHELL = @POSIX_SHELL@
|
||||
--- gnulib-tests/Makefile.in
|
||||
+++ gnulib-tests/Makefile.in
|
||||
@@ -1421,6 +1421,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
Index: gnulib-tests/Makefile.in
|
||||
===================================================================
|
||||
--- gnulib-tests/Makefile.in.orig 2010-04-23 18:00:33.000000000 +0200
|
||||
+++ gnulib-tests/Makefile.in 2010-05-06 19:37:44.871374260 +0200
|
||||
@@ -2191,6 +2191,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
@ -197,9 +201,11 @@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
POSIX_SHELL = @POSIX_SHELL@
|
||||
--- lib/Makefile.in
|
||||
+++ lib/Makefile.in
|
||||
@@ -763,6 +763,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
Index: lib/Makefile.in
|
||||
===================================================================
|
||||
--- lib/Makefile.in.orig 2010-04-23 17:58:38.000000000 +0200
|
||||
+++ lib/Makefile.in 2010-05-06 19:37:59.594863753 +0200
|
||||
@@ -1006,6 +1006,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
@ -207,9 +213,11 @@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
POSIX_SHELL = @POSIX_SHELL@
|
||||
--- man/Makefile.in
|
||||
+++ man/Makefile.in
|
||||
@@ -703,6 +703,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
Index: man/Makefile.in
|
||||
===================================================================
|
||||
--- man/Makefile.in.orig 2010-05-06 19:37:44.618920753 +0200
|
||||
+++ man/Makefile.in 2010-05-06 19:37:44.934868934 +0200
|
||||
@@ -926,6 +926,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
@ -217,24 +225,28 @@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
POSIX_SHELL = @POSIX_SHELL@
|
||||
--- src/Makefile.am
|
||||
+++ src/Makefile.am
|
||||
@@ -147,7 +147,8 @@ tail_LDADD = $(nanosec_libs)
|
||||
# If necessary, add -lm to resolve use of pow in lib/strtod.c.
|
||||
uptime_LDADD = $(LDADD) $(POW_LIB) $(GETLOADAVG_LIBS)
|
||||
Index: src/Makefile.am
|
||||
===================================================================
|
||||
--- src/Makefile.am.orig 2010-04-23 15:44:14.000000000 +0200
|
||||
+++ src/Makefile.am 2010-05-06 19:37:59.594863753 +0200
|
||||
@@ -364,7 +364,8 @@ factor_LDADD += $(LIB_GMP)
|
||||
uptime_LDADD += $(GETLOADAVG_LIBS)
|
||||
|
||||
-su_LDADD = $(LDADD) $(LIB_CRYPT)
|
||||
# for crypt
|
||||
-su_LDADD += $(LIB_CRYPT)
|
||||
+su_SOURCES = su.c getdef.c
|
||||
+su_LDADD = $(LDADD) $(LIB_CRYPT) $(PAM_LIBS)
|
||||
|
||||
dir_LDADD += $(LIB_ACL)
|
||||
ls_LDADD += $(LIB_ACL)
|
||||
--- src/Makefile.in
|
||||
+++ src/Makefile.in
|
||||
@@ -605,9 +605,10 @@ stty_OBJECTS = stty.$(OBJEXT)
|
||||
stty_LDADD = $(LDADD)
|
||||
stty_DEPENDENCIES = libver.a ../lib/libcoreutils.a \
|
||||
$(am__DEPENDENCIES_1) ../lib/libcoreutils.a
|
||||
# for various ACL functions
|
||||
copy_LDADD += $(LIB_ACL)
|
||||
Index: src/Makefile.in
|
||||
===================================================================
|
||||
--- src/Makefile.in.orig 2010-04-23 18:35:11.000000000 +0200
|
||||
+++ src/Makefile.in 2010-05-06 19:37:59.594863753 +0200
|
||||
@@ -553,9 +553,10 @@ stdbuf_DEPENDENCIES = $(am__DEPENDENCIES
|
||||
stty_SOURCES = stty.c
|
||||
stty_OBJECTS = stty.$(OBJEXT)
|
||||
stty_DEPENDENCIES = $(am__DEPENDENCIES_2)
|
||||
-su_SOURCES = su.c
|
||||
-su_OBJECTS = su.$(OBJEXT)
|
||||
-su_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
|
||||
@ -244,40 +256,28 @@
|
||||
+ $(am__DEPENDENCIES_1)
|
||||
sum_SOURCES = sum.c
|
||||
sum_OBJECTS = sum.$(OBJEXT)
|
||||
sum_LDADD = $(LDADD)
|
||||
@@ -735,11 +736,11 @@ SOURCES = $(nodist_libver_a_SOURCES) $(_
|
||||
$(rm_SOURCES) $(rmdir_SOURCES) runcon.c seq.c setuidgid.c \
|
||||
$(sha1sum_SOURCES) $(sha224sum_SOURCES) $(sha256sum_SOURCES) \
|
||||
$(sha384sum_SOURCES) $(sha512sum_SOURCES) shred.c shuf.c \
|
||||
- sleep.c sort.c split.c stat.c stty.c su.c sum.c sync.c tac.c \
|
||||
- tail.c tee.c test.c $(timeout_SOURCES) touch.c tr.c true.c \
|
||||
- truncate.c tsort.c tty.c $(uname_SOURCES) unexpand.c uniq.c \
|
||||
- unlink.c uptime.c users.c $(vdir_SOURCES) wc.c who.c whoami.c \
|
||||
- yes.c
|
||||
+ sleep.c sort.c split.c stat.c stty.c $(su_SOURCES) sum.c \
|
||||
+ sync.c tac.c tail.c tee.c test.c $(timeout_SOURCES) touch.c \
|
||||
+ tr.c true.c truncate.c tsort.c tty.c $(uname_SOURCES) \
|
||||
+ unexpand.c uniq.c unlink.c uptime.c users.c $(vdir_SOURCES) \
|
||||
+ wc.c who.c whoami.c yes.c
|
||||
DIST_SOURCES = $(__SOURCES) $(arch_SOURCES) base64.c basename.c cat.c \
|
||||
chcon.c $(chgrp_SOURCES) chmod.c $(chown_SOURCES) chroot.c \
|
||||
cksum.c comm.c $(cp_SOURCES) csplit.c cut.c date.c dd.c df.c \
|
||||
@@ -754,10 +755,10 @@ DIST_SOURCES = $(__SOURCES) $(arch_SOURC
|
||||
sum_DEPENDENCIES = $(am__DEPENDENCIES_2)
|
||||
@@ -665,8 +666,8 @@ SOURCES = $(nodist_libver_a_SOURCES) $(_
|
||||
$(rmdir_SOURCES) runcon.c seq.c setuidgid.c $(sha1sum_SOURCES) \
|
||||
$(sha224sum_SOURCES) $(sha256sum_SOURCES) $(sha384sum_SOURCES) \
|
||||
$(sha512sum_SOURCES) shred.c shuf.c sleep.c sort.c split.c \
|
||||
- stat.c stty.c su.c sum.c sync.c tac.c tail.c tee.c test.c \
|
||||
- $(timeout_SOURCES) touch.c tr.c true.c truncate.c tsort.c \
|
||||
- tty.c $(uname_SOURCES) unexpand.c uniq.c unlink.c uptime.c \
|
||||
- users.c $(vdir_SOURCES) wc.c who.c whoami.c yes.c
|
||||
+ stat.c stty.c $(su_SOURCES) sum.c sync.c tac.c tail.c tee.c \
|
||||
+ test.c $(timeout_SOURCES) touch.c tr.c true.c truncate.c \
|
||||
+ tsort.c tty.c $(uname_SOURCES) unexpand.c uniq.c unlink.c \
|
||||
+ uptime.c users.c $(vdir_SOURCES) wc.c who.c whoami.c yes.c
|
||||
HEADERS = $(noinst_HEADERS)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
@@ -1209,6 +1210,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
- stat.c stdbuf.c stty.c su.c sum.c sync.c tac.c tail.c tee.c \
|
||||
- test.c $(timeout_SOURCES) touch.c tr.c true.c truncate.c \
|
||||
+ stat.c stdbuf.c stty.c $(su_SOURCES) sum.c sync.c tac.c tail.c \
|
||||
+ tee.c test.c $(timeout_SOURCES) touch.c tr.c true.c truncate.c \
|
||||
tsort.c tty.c $(uname_SOURCES) unexpand.c uniq.c unlink.c \
|
||||
uptime.c users.c $(vdir_SOURCES) wc.c who.c whoami.c yes.c
|
||||
DIST_SOURCES = $(__SOURCES) $(arch_SOURCES) base64.c basename.c cat.c \
|
||||
@@ -683,7 +684,7 @@ DIST_SOURCES = $(__SOURCES) $(arch_SOURC
|
||||
$(rm_SOURCES) $(rmdir_SOURCES) runcon.c seq.c setuidgid.c \
|
||||
$(sha1sum_SOURCES) $(sha224sum_SOURCES) $(sha256sum_SOURCES) \
|
||||
$(sha384sum_SOURCES) $(sha512sum_SOURCES) shred.c shuf.c \
|
||||
- sleep.c sort.c split.c stat.c stdbuf.c stty.c su.c sum.c \
|
||||
+ sleep.c sort.c split.c stat.c stdbuf.c stty.c $(su_SOURCES) sum.c \
|
||||
sync.c tac.c tail.c tee.c test.c $(timeout_SOURCES) touch.c \
|
||||
tr.c true.c truncate.c tsort.c tty.c $(uname_SOURCES) \
|
||||
unexpand.c uniq.c unlink.c uptime.c users.c $(vdir_SOURCES) \
|
||||
@@ -1338,6 +1339,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
@ -285,17 +285,17 @@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
POSIX_SHELL = @POSIX_SHELL@
|
||||
@@ -1511,7 +1513,8 @@ tail_LDADD = $(nanosec_libs)
|
||||
@@ -1743,7 +1745,8 @@ stdbuf_LDADD = $(LDADD) $(LIBICONV)
|
||||
stty_LDADD = $(LDADD)
|
||||
|
||||
# If necessary, add -lm to resolve use of pow in lib/strtod.c.
|
||||
uptime_LDADD = $(LDADD) $(POW_LIB) $(GETLOADAVG_LIBS)
|
||||
# for crypt
|
||||
-su_LDADD = $(LDADD) $(LIB_CRYPT)
|
||||
+su_SOURCES = su.c getdef.c
|
||||
+su_LDADD = $(LDADD) $(LIB_CRYPT) $(PAM_LIBS)
|
||||
stat_LDADD = $(LDADD) $(LIB_SELINUX)
|
||||
|
||||
# programs that use getaddrinfo (e.g., via canon_host)
|
||||
@@ -2040,6 +2043,7 @@ distclean-compile:
|
||||
sum_LDADD = $(LDADD)
|
||||
sync_LDADD = $(LDADD)
|
||||
tac_LDADD = $(LDADD) $(LIB_GETHRXTIME)
|
||||
@@ -2386,6 +2389,7 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/false.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fmt.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fold.Po@am__quote@
|
||||
@ -303,8 +303,10 @@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getlimits.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ginstall-copy.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ginstall-cp-hash.Po@am__quote@
|
||||
--- src/getdef.c
|
||||
+++ src/getdef.c
|
||||
Index: src/getdef.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ src/getdef.c 2010-05-06 19:37:45.014990147 +0200
|
||||
@@ -0,0 +1,259 @@
|
||||
+/* Copyright (C) 2003, 2004, 2005 Thorsten Kukuk
|
||||
+ Author: Thorsten Kukuk <kukuk@suse.de>
|
||||
@ -565,8 +567,10 @@
|
||||
+}
|
||||
+
|
||||
+#endif
|
||||
--- src/getdef.h
|
||||
+++ src/getdef.h
|
||||
Index: src/getdef.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ src/getdef.h 2010-05-06 19:37:45.054863903 +0200
|
||||
@@ -0,0 +1,29 @@
|
||||
+/* Copyright (C) 2003, 2005 Thorsten Kukuk
|
||||
+ Author: Thorsten Kukuk <kukuk@suse.de>
|
||||
@ -597,8 +601,10 @@
|
||||
+extern void free_getdef_data (void);
|
||||
+
|
||||
+#endif /* _GETDEF_H_ */
|
||||
--- src/su.c
|
||||
+++ src/su.c
|
||||
Index: src/su.c
|
||||
===================================================================
|
||||
--- src/su.c.orig 2010-01-01 14:06:47.000000000 +0100
|
||||
+++ src/su.c 2010-05-06 19:37:59.538860383 +0200
|
||||
@@ -37,6 +37,16 @@
|
||||
restricts who can su to UID 0 accounts. RMS considers that to
|
||||
be fascist.
|
||||
@ -616,7 +622,7 @@
|
||||
Compile-time options:
|
||||
-DSYSLOG_SUCCESS Log successful su's (by default, to root) with syslog.
|
||||
-DSYSLOG_FAILURE Log failed su's (by default, to root) with syslog.
|
||||
@@ -52,6 +62,13 @@
|
||||
@@ -52,12 +62,22 @@
|
||||
#include <sys/types.h>
|
||||
#include <pwd.h>
|
||||
#include <grp.h>
|
||||
@ -628,9 +634,8 @@
|
||||
+#include <sys/fsuid.h>
|
||||
+#endif
|
||||
|
||||
/* Hide any system prototype for getusershell.
|
||||
This is necessary because some Cray systems have a conflicting
|
||||
@@ -65,6 +82,9 @@
|
||||
#include "system.h"
|
||||
#include "getpass.h"
|
||||
|
||||
#if HAVE_SYSLOG_H && HAVE_SYSLOG
|
||||
# include <syslog.h>
|
||||
@ -640,7 +645,7 @@
|
||||
#else
|
||||
# undef SYSLOG_SUCCESS
|
||||
# undef SYSLOG_FAILURE
|
||||
@@ -98,19 +118,13 @@
|
||||
@@ -91,19 +111,13 @@
|
||||
# include <paths.h>
|
||||
#endif
|
||||
|
||||
@ -664,18 +669,20 @@
|
||||
|
||||
/* The shell to run if none is given in the user's passwd entry. */
|
||||
#define DEFAULT_SHELL "/bin/sh"
|
||||
@@ -118,13 +132,22 @@
|
||||
@@ -111,8 +125,9 @@
|
||||
/* The user to become if none is specified. */
|
||||
#define DEFAULT_USER "root"
|
||||
|
||||
+#ifndef USE_PAM
|
||||
char *crypt (char const *key, char const *salt);
|
||||
-
|
||||
+#endif
|
||||
char *getusershell (void);
|
||||
void endusershell (void);
|
||||
void setusershell (void);
|
||||
static void run_shell (char const *, char const *, char **, size_t)
|
||||
ATTRIBUTE_NORETURN;
|
||||
|
||||
extern char **environ;
|
||||
@@ -125,6 +140,13 @@ static bool simulate_login;
|
||||
/* If true, change some environment vars to indicate the user su'd to. */
|
||||
static bool change_environment;
|
||||
|
||||
+#ifdef USE_PAM
|
||||
+static bool _pam_session_opened;
|
||||
@ -684,10 +691,10 @@
|
||||
+static void create_watching_parent (void);
|
||||
+#endif
|
||||
+
|
||||
static void run_shell (char const *, char const *, char **, size_t)
|
||||
ATTRIBUTE_NORETURN;
|
||||
|
||||
@@ -212,7 +235,162 @@ log_su (struct passwd const *pw, bool su
|
||||
static struct option const longopts[] =
|
||||
{
|
||||
{"command", required_argument, NULL, 'c'},
|
||||
@@ -200,7 +222,162 @@ log_su (struct passwd const *pw, bool su
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -772,7 +779,7 @@
|
||||
+ /* the child proceeds to run the shell */
|
||||
+ if (child == 0)
|
||||
+ return;
|
||||
+
|
||||
+
|
||||
+ /* In the parent watch the child. */
|
||||
+
|
||||
+ /* su without pam support does not have a helper that keeps
|
||||
@ -850,7 +857,7 @@
|
||||
Return true if the user gives the correct password for entry PW,
|
||||
false if not. Return true without asking for a password if run by UID 0
|
||||
or if PW has an empty password. */
|
||||
@@ -220,10 +398,52 @@ log_su (struct passwd const *pw, bool su
|
||||
@@ -208,10 +385,52 @@ log_su (struct passwd const *pw, bool su
|
||||
static bool
|
||||
correct_password (const struct passwd *pw)
|
||||
{
|
||||
@ -904,7 +911,7 @@
|
||||
|
||||
endspent ();
|
||||
if (sp)
|
||||
@@ -244,6 +464,7 @@ correct_password (const struct passwd *p
|
||||
@@ -232,6 +451,7 @@ correct_password (const struct passwd *p
|
||||
encrypted = crypt (unencrypted, correct);
|
||||
memset (unencrypted, 0, strlen (unencrypted));
|
||||
return STREQ (encrypted, correct);
|
||||
@ -912,33 +919,33 @@
|
||||
}
|
||||
|
||||
/* Update `environ' for the new shell based on PW, with SHELL being
|
||||
@@ -268,8 +489,8 @@ modify_environment (const struct passwd
|
||||
@@ -256,8 +476,8 @@ modify_environment (const struct passwd
|
||||
xsetenv ("USER", pw->pw_name);
|
||||
xsetenv ("LOGNAME", pw->pw_name);
|
||||
xsetenv ("PATH", (pw->pw_uid
|
||||
- ? DEFAULT_LOGIN_PATH
|
||||
- : DEFAULT_ROOT_LOGIN_PATH));
|
||||
- ? DEFAULT_LOGIN_PATH
|
||||
- : DEFAULT_ROOT_LOGIN_PATH));
|
||||
+ ? getdef_str ("PATH", DEFAULT_LOGIN_PATH)
|
||||
+ : getdef_str ("SUPATH", DEFAULT_ROOT_LOGIN_PATH)));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -279,6 +500,12 @@ modify_environment (const struct passwd
|
||||
{
|
||||
xsetenv ("HOME", pw->pw_dir);
|
||||
xsetenv ("SHELL", shell);
|
||||
@@ -267,6 +487,12 @@ modify_environment (const struct passwd
|
||||
{
|
||||
xsetenv ("HOME", pw->pw_dir);
|
||||
xsetenv ("SHELL", shell);
|
||||
+ if (getdef_bool ("ALWAYS_SET_PATH", 0))
|
||||
+ xsetenv ("PATH", (pw->pw_uid
|
||||
+ ? getdef_str ("PATH",
|
||||
+ DEFAULT_LOGIN_PATH)
|
||||
+ : getdef_str ("SUPATH",
|
||||
+ DEFAULT_ROOT_LOGIN_PATH)));
|
||||
if (pw->pw_uid)
|
||||
{
|
||||
xsetenv ("USER", pw->pw_name);
|
||||
@@ -286,19 +513,41 @@ modify_environment (const struct passwd
|
||||
}
|
||||
}
|
||||
if (pw->pw_uid)
|
||||
{
|
||||
xsetenv ("USER", pw->pw_name);
|
||||
@@ -274,19 +500,41 @@ modify_environment (const struct passwd
|
||||
}
|
||||
}
|
||||
}
|
||||
+
|
||||
+#ifdef USE_PAM
|
||||
@ -955,7 +962,7 @@
|
||||
#ifdef HAVE_INITGROUPS
|
||||
errno = 0;
|
||||
if (initgroups (pw->pw_name, pw->pw_gid) == -1)
|
||||
- error (EXIT_FAILURE, errno, _("cannot set groups"));
|
||||
- error (EXIT_CANCELED, errno, _("cannot set groups"));
|
||||
+ {
|
||||
+#ifdef USE_PAM
|
||||
+ cleanup_pam (PAM_ABORT);
|
||||
@ -978,17 +985,17 @@
|
||||
+change_identity (const struct passwd *pw)
|
||||
+{
|
||||
if (setgid (pw->pw_gid))
|
||||
error (EXIT_FAILURE, errno, _("cannot set group id"));
|
||||
error (EXIT_CANCELED, errno, _("cannot set group id"));
|
||||
if (setuid (pw->pw_uid))
|
||||
@@ -491,6 +740,7 @@ main (int argc, char **argv)
|
||||
@@ -479,6 +727,7 @@ main (int argc, char **argv)
|
||||
#ifdef SYSLOG_FAILURE
|
||||
log_su (pw, false);
|
||||
#endif
|
||||
+ sleep (getdef_num ("FAIL_DELAY", 1));
|
||||
error (EXIT_FAILURE, 0, _("incorrect password"));
|
||||
error (EXIT_CANCELED, 0, _("incorrect password"));
|
||||
}
|
||||
#ifdef SYSLOG_SUCCESS
|
||||
@@ -512,9 +762,21 @@ main (int argc, char **argv)
|
||||
@@ -500,9 +749,21 @@ main (int argc, char **argv)
|
||||
shell = NULL;
|
||||
}
|
||||
shell = xstrdup (shell ? shell : pw->pw_shell);
|
||||
@ -1011,9 +1018,11 @@
|
||||
if (simulate_login && chdir (pw->pw_dir) != 0)
|
||||
error (0, errno, _("warning: cannot change directory to %s"), pw->pw_dir);
|
||||
|
||||
--- tests/Makefile.in
|
||||
+++ tests/Makefile.in
|
||||
@@ -677,6 +677,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
Index: tests/Makefile.in
|
||||
===================================================================
|
||||
--- tests/Makefile.in.orig 2010-04-23 17:58:39.000000000 +0200
|
||||
+++ tests/Makefile.in 2010-05-06 19:37:45.091861849 +0200
|
||||
@@ -986,6 +986,7 @@ PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
@ -1,28 +1,35 @@
|
||||
--- lib/Makefile.am
|
||||
+++ lib/Makefile.am
|
||||
@@ -18,6 +18,7 @@
|
||||
Index: lib/Makefile.am
|
||||
===================================================================
|
||||
--- lib/Makefile.am.orig 2010-01-01 14:06:47.000000000 +0100
|
||||
+++ lib/Makefile.am 2010-05-05 14:38:03.083359277 +0200
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
include gnulib.mk
|
||||
|
||||
AM_CFLAGS = $(WARN_CFLAGS) # $(WERROR_CFLAGS)
|
||||
+AM_CFLAGS += -fpie
|
||||
-AM_CFLAGS += $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS)
|
||||
+AM_CFLAGS += $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS) -fpie
|
||||
|
||||
libcoreutils_a_SOURCES += \
|
||||
buffer-lcm.c buffer-lcm.h \
|
||||
--- lib/Makefile.in
|
||||
+++ lib/Makefile.in
|
||||
@@ -1169,7 +1169,7 @@ GPERF = gperf
|
||||
LINK_WARNING_H = $(top_srcdir)/build-aux/link-warning.h
|
||||
charset_alias = $(DESTDIR)$(libdir)/charset.alias
|
||||
charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
|
||||
-AM_CFLAGS = $(WARN_CFLAGS) # $(WERROR_CFLAGS)
|
||||
+AM_CFLAGS = $(WARN_CFLAGS) -fpie
|
||||
all: $(BUILT_SOURCES) config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
|
||||
--- src/Makefile.am
|
||||
+++ src/Makefile.am
|
||||
@@ -149,6 +149,10 @@ uptime_LDADD = $(LDADD) $(POW_LIB) $(GET
|
||||
|
||||
Index: lib/Makefile.in
|
||||
===================================================================
|
||||
--- lib/Makefile.in.orig 2010-05-05 14:37:08.000000000 +0200
|
||||
+++ lib/Makefile.in 2010-05-05 14:38:31.946859277 +0200
|
||||
@@ -1432,7 +1432,7 @@ DISTCLEANFILES =
|
||||
MAINTAINERCLEANFILES = getdate.c iconv_open-aix.h iconv_open-hpux.h \
|
||||
iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h
|
||||
AM_CPPFLAGS =
|
||||
-AM_CFLAGS = $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS)
|
||||
+AM_CFLAGS = $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS) -fpie
|
||||
libcoreutils_a_SOURCES = set-mode-acl.c copy-acl.c file-has-acl.c \
|
||||
areadlink.c areadlink-with-size.c areadlinkat.c argv-iter.c \
|
||||
argv-iter.h base64.h base64.c bitrotate.h c-ctype.h c-ctype.c \
|
||||
Index: src/Makefile.am
|
||||
===================================================================
|
||||
--- src/Makefile.am.orig 2010-05-05 14:37:08.000000000 +0200
|
||||
+++ src/Makefile.am 2010-05-05 14:39:20.956359221 +0200
|
||||
@@ -366,6 +366,10 @@ uptime_LDADD += $(GETLOADAVG_LIBS)
|
||||
# for crypt
|
||||
su_SOURCES = su.c getdef.c
|
||||
su_LDADD = $(LDADD) $(LIB_CRYPT) $(PAM_LIBS)
|
||||
+su_CFLAGS = -fpie
|
||||
@ -30,14 +37,16 @@
|
||||
+timeout_CFLAGS = -fpie
|
||||
+timeout_LDFLAGS = -pie
|
||||
|
||||
dir_LDADD += $(LIB_ACL)
|
||||
ls_LDADD += $(LIB_ACL)
|
||||
--- src/Makefile.in
|
||||
+++ src/Makefile.in
|
||||
@@ -605,10 +605,12 @@ stty_OBJECTS = stty.$(OBJEXT)
|
||||
stty_LDADD = $(LDADD)
|
||||
stty_DEPENDENCIES = libver.a ../lib/libcoreutils.a \
|
||||
$(am__DEPENDENCIES_1) ../lib/libcoreutils.a
|
||||
# for various ACL functions
|
||||
copy_LDADD += $(LIB_ACL)
|
||||
Index: src/Makefile.in
|
||||
===================================================================
|
||||
--- src/Makefile.in.orig 2010-05-05 14:37:08.000000000 +0200
|
||||
+++ src/Makefile.in 2010-05-05 14:46:02.318905172 +0200
|
||||
@@ -553,10 +553,12 @@ stdbuf_DEPENDENCIES = $(am__DEPENDENCIES
|
||||
stty_SOURCES = stty.c
|
||||
stty_OBJECTS = stty.$(OBJEXT)
|
||||
stty_DEPENDENCIES = $(am__DEPENDENCIES_2)
|
||||
-am_su_OBJECTS = su.$(OBJEXT) getdef.$(OBJEXT)
|
||||
+am_su_OBJECTS = su-su.$(OBJEXT) su-getdef.$(OBJEXT)
|
||||
su_OBJECTS = $(am_su_OBJECTS)
|
||||
@ -47,8 +56,8 @@
|
||||
+ $@
|
||||
sum_SOURCES = sum.c
|
||||
sum_OBJECTS = sum.$(OBJEXT)
|
||||
sum_LDADD = $(LDADD)
|
||||
@@ -633,9 +635,12 @@ tee_DEPENDENCIES = libver.a ../lib/libco
|
||||
sum_DEPENDENCIES = $(am__DEPENDENCIES_2)
|
||||
@@ -576,9 +578,12 @@ tee_DEPENDENCIES = $(am__DEPENDENCIES_2)
|
||||
test_SOURCES = test.c
|
||||
test_OBJECTS = test.$(OBJEXT)
|
||||
test_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
|
||||
@ -62,36 +71,36 @@
|
||||
touch_SOURCES = touch.c
|
||||
touch_OBJECTS = touch.$(OBJEXT)
|
||||
touch_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
|
||||
@@ -1515,6 +1520,10 @@ tail_LDADD = $(nanosec_libs)
|
||||
uptime_LDADD = $(LDADD) $(POW_LIB) $(GETLOADAVG_LIBS)
|
||||
@@ -1747,6 +1752,10 @@ stty_LDADD = $(LDADD)
|
||||
# for crypt
|
||||
su_SOURCES = su.c getdef.c
|
||||
su_LDADD = $(LDADD) $(LIB_CRYPT) $(PAM_LIBS)
|
||||
+su_CFLAGS = -fpie
|
||||
+su_LDFLAGS = -pie
|
||||
+timeout_CFLAGS = -fpie
|
||||
+timeout_LDFLAGS = -pie
|
||||
stat_LDADD = $(LDADD) $(LIB_SELINUX)
|
||||
|
||||
# programs that use getaddrinfo (e.g., via canon_host)
|
||||
@@ -1933,7 +1942,7 @@ stty$(EXEEXT): $(stty_OBJECTS) $(stty_DE
|
||||
$(LINK) $(stty_OBJECTS) $(stty_LDADD) $(LIBS)
|
||||
sum_LDADD = $(LDADD)
|
||||
sync_LDADD = $(LDADD)
|
||||
tac_LDADD = $(LDADD) $(LIB_GETHRXTIME)
|
||||
@@ -2279,7 +2288,7 @@ stty$(EXEEXT): $(stty_OBJECTS) $(stty_DE
|
||||
$(AM_V_CCLD)$(LINK) $(stty_OBJECTS) $(stty_LDADD) $(LIBS)
|
||||
su$(EXEEXT): $(su_OBJECTS) $(su_DEPENDENCIES)
|
||||
@rm -f su$(EXEEXT)
|
||||
- $(LINK) $(su_OBJECTS) $(su_LDADD) $(LIBS)
|
||||
+ $(su_LINK) $(su_OBJECTS) $(su_LDADD) $(LIBS)
|
||||
- $(AM_V_CCLD)$(LINK) $(su_OBJECTS) $(su_LDADD) $(LIBS)
|
||||
+ $(AM_V_CCLD)$(su_LINK) $(su_OBJECTS) $(su_LDADD) $(LIBS)
|
||||
sum$(EXEEXT): $(sum_OBJECTS) $(sum_DEPENDENCIES)
|
||||
@rm -f sum$(EXEEXT)
|
||||
$(LINK) $(sum_OBJECTS) $(sum_LDADD) $(LIBS)
|
||||
@@ -1954,7 +1963,7 @@ test$(EXEEXT): $(test_OBJECTS) $(test_DE
|
||||
$(LINK) $(test_OBJECTS) $(test_LDADD) $(LIBS)
|
||||
$(AM_V_CCLD)$(LINK) $(sum_OBJECTS) $(sum_LDADD) $(LIBS)
|
||||
@@ -2300,7 +2309,7 @@ test$(EXEEXT): $(test_OBJECTS) $(test_DE
|
||||
$(AM_V_CCLD)$(LINK) $(test_OBJECTS) $(test_LDADD) $(LIBS)
|
||||
timeout$(EXEEXT): $(timeout_OBJECTS) $(timeout_DEPENDENCIES)
|
||||
@rm -f timeout$(EXEEXT)
|
||||
- $(LINK) $(timeout_OBJECTS) $(timeout_LDADD) $(LIBS)
|
||||
+ $(timeout_LINK) $(timeout_OBJECTS) $(timeout_LDADD) $(LIBS)
|
||||
- $(AM_V_CCLD)$(LINK) $(timeout_OBJECTS) $(timeout_LDADD) $(LIBS)
|
||||
+ $(AM_V_CCLD)$(timeout_LINK) $(timeout_OBJECTS) $(timeout_LDADD) $(LIBS)
|
||||
touch$(EXEEXT): $(touch_OBJECTS) $(touch_DEPENDENCIES)
|
||||
@rm -f touch$(EXEEXT)
|
||||
$(LINK) $(touch_OBJECTS) $(touch_LDADD) $(LIBS)
|
||||
@@ -2043,7 +2052,6 @@ distclean-compile:
|
||||
$(AM_V_CCLD)$(LINK) $(touch_OBJECTS) $(touch_LDADD) $(LIBS)
|
||||
@@ -2389,7 +2398,6 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/false.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fmt.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fold.Po@am__quote@
|
||||
@ -99,9 +108,9 @@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getlimits.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ginstall-copy.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ginstall-cp-hash.Po@am__quote@
|
||||
@@ -2104,14 +2112,16 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/split.Po@am__quote@
|
||||
@@ -2453,14 +2461,16 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stdbuf.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stty.Po@am__quote@
|
||||
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/su.Po@am__quote@
|
||||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/su-getdef.Po@am__quote@
|
||||
@ -118,9 +127,9 @@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/touch.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tr.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/true.Po@am__quote@
|
||||
@@ -2286,6 +2296,62 @@ sha512sum-md5sum.obj: md5sum.c
|
||||
@@ -2649,6 +2659,62 @@ sha512sum-md5sum.obj: md5sum.c
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sha512sum_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sha512sum-md5sum.obj `if test -f 'md5sum.c'; then $(CYGPATH_W) 'md5sum.c'; else $(CYGPATH_W) '$(srcdir)/md5sum.c'; fi`
|
||||
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(sha512sum_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sha512sum-md5sum.obj `if test -f 'md5sum.c'; then $(CYGPATH_W) 'md5sum.c'; else $(CYGPATH_W) '$(srcdir)/md5sum.c'; fi`
|
||||
|
||||
+su-su.o: su.c
|
||||
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(su_CFLAGS) $(CFLAGS) -MT su-su.o -MD -MP -MF $(DEPDIR)/su-su.Tpo -c -o su-su.o `test -f 'su.c' || echo '$(srcdir)/'`su.c
|
@ -1,194 +0,0 @@
|
||||
--- configure
|
||||
+++ configure
|
||||
@@ -3029,7 +3029,6 @@ as_fn_append ac_func_list " fchmod"
|
||||
as_fn_append ac_func_list " alarm"
|
||||
as_fn_append ac_header_list " sys/statvfs.h"
|
||||
as_fn_append ac_header_list " sys/select.h"
|
||||
-gl_printf_safe=yes
|
||||
as_fn_append ac_func_list " readlink"
|
||||
as_fn_append ac_header_list " utmp.h"
|
||||
as_fn_append ac_header_list " utmpx.h"
|
||||
--- doc/coreutils.texi
|
||||
+++ doc/coreutils.texi
|
||||
@@ -66,8 +66,6 @@
|
||||
* fold: (coreutils)fold invocation. Wrap long input lines.
|
||||
* groups: (coreutils)groups invocation. Print group names a user is in.
|
||||
* head: (coreutils)head invocation. Output the first part of files.
|
||||
-* hostid: (coreutils)hostid invocation. Print numeric host identifier.
|
||||
-* hostname: (coreutils)hostname invocation. Print or set system name.
|
||||
* id: (coreutils)id invocation. Print user identity.
|
||||
* install: (coreutils)install invocation. Copy and change attributes.
|
||||
* join: (coreutils)join invocation. Join lines on a common field.
|
||||
@@ -195,7 +193,7 @@ Free Documentation License''.
|
||||
* File name manipulation:: dirname basename pathchk
|
||||
* Working context:: pwd stty printenv tty
|
||||
* User information:: id logname whoami groups users who
|
||||
-* System context:: date uname hostname hostid uptime
|
||||
+* System context:: date uname uptime
|
||||
* SELinux context:: chcon runcon
|
||||
* Modified command invocation:: chroot env nice nohup su timeout
|
||||
* Process control:: kill
|
||||
@@ -409,8 +407,6 @@ System context
|
||||
* arch invocation:: Print machine hardware name
|
||||
* date invocation:: Print or set system date and time
|
||||
* uname invocation:: Print system information
|
||||
-* hostname invocation:: Print or set system name
|
||||
-* hostid invocation:: Print numeric host identifier
|
||||
* uptime invocation:: Print system uptime and load
|
||||
|
||||
@command{date}: Print or set system date and time
|
||||
@@ -12969,8 +12965,6 @@ information.
|
||||
* arch invocation:: Print machine hardware name.
|
||||
* date invocation:: Print or set system date and time.
|
||||
* uname invocation:: Print system information.
|
||||
-* hostname invocation:: Print or set system name.
|
||||
-* hostid invocation:: Print numeric host identifier.
|
||||
* uptime invocation:: Print system uptime and load
|
||||
@end menu
|
||||
|
||||
@@ -13928,54 +13922,6 @@ Print the kernel version.
|
||||
@exitstatus
|
||||
|
||||
|
||||
-@node hostname invocation
|
||||
-@section @command{hostname}: Print or set system name
|
||||
-
|
||||
-@pindex hostname
|
||||
-@cindex setting the hostname
|
||||
-@cindex printing the hostname
|
||||
-@cindex system name, printing
|
||||
-@cindex appropriate privileges
|
||||
-
|
||||
-With no arguments, @command{hostname} prints the name of the current host
|
||||
-system. With one argument, it sets the current host name to the
|
||||
-specified string. You must have appropriate privileges to set the host
|
||||
-name. Synopsis:
|
||||
-
|
||||
-@example
|
||||
-hostname [@var{name}]
|
||||
-@end example
|
||||
-
|
||||
-The only options are @option{--help} and @option{--version}. @xref{Common
|
||||
-options}.
|
||||
-
|
||||
-@exitstatus
|
||||
-
|
||||
-
|
||||
-@node hostid invocation
|
||||
-@section @command{hostid}: Print numeric host identifier.
|
||||
-
|
||||
-@pindex hostid
|
||||
-@cindex printing the host identifier
|
||||
-
|
||||
-@command{hostid} prints the numeric identifier of the current host
|
||||
-in hexadecimal. This command accepts no arguments.
|
||||
-The only options are @option{--help} and @option{--version}.
|
||||
-@xref{Common options}.
|
||||
-
|
||||
-For example, here's what it prints on one system I use:
|
||||
-
|
||||
-@example
|
||||
-$ hostid
|
||||
-1bac013d
|
||||
-@end example
|
||||
-
|
||||
-On that system, the 32-bit quantity happens to be closely
|
||||
-related to the system's Internet address, but that isn't always
|
||||
-the case.
|
||||
-
|
||||
-@exitstatus
|
||||
-
|
||||
@node uptime invocation
|
||||
@section @command{uptime}: Print system uptime and load
|
||||
|
||||
--- gnulib-tests/test-isnanl.h
|
||||
+++ gnulib-tests/test-isnanl.h
|
||||
@@ -75,7 +75,7 @@ main ()
|
||||
/* Quiet NaN. */
|
||||
ASSERT (isnanl (0.0L / 0.0L));
|
||||
|
||||
-#if defined LDBL_EXPBIT0_WORD && defined LDBL_EXPBIT0_BIT
|
||||
+#if defined LDBL_EXPBIT0_WORD && defined LDBL_EXPBIT0_BIT && 0
|
||||
/* A bit pattern that is different from a Quiet NaN. With a bit of luck,
|
||||
it's a Signalling NaN. */
|
||||
{
|
||||
@@ -117,6 +117,7 @@ main ()
|
||||
{ LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) };
|
||||
ASSERT (isnanl (x.value));
|
||||
}
|
||||
+#if 0
|
||||
/* The isnanl function should recognize Pseudo-NaNs, Pseudo-Infinities,
|
||||
Pseudo-Zeroes, Unnormalized Numbers, and Pseudo-Denormals, as defined in
|
||||
Intel IA-64 Architecture Software Developer's Manual, Volume 1:
|
||||
@@ -150,6 +151,7 @@ main ()
|
||||
ASSERT (isnanl (x.value));
|
||||
}
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
--- m4/gnulib-comp.m4
|
||||
+++ m4/gnulib-comp.m4
|
||||
@@ -287,7 +287,6 @@ AC_DEFUN([gl_INIT],
|
||||
gl_POSIXVER
|
||||
gl_FUNC_PRINTF_FREXP
|
||||
gl_FUNC_PRINTF_FREXPL
|
||||
- m4_divert_text([INIT_PREPARE], [gl_printf_safe=yes])
|
||||
m4_ifdef([AM_XGETTEXT_OPTION],
|
||||
[AM_XGETTEXT_OPTION([--keyword='proper_name:1,\"This is a proper name. See the gettext manual, section Names.\"'])
|
||||
AM_XGETTEXT_OPTION([--keyword='proper_name_utf8:1,\"This is a proper name. See the gettext manual, section Names.\"'])])
|
||||
--- man/Makefile.am
|
||||
+++ man/Makefile.am
|
||||
@@ -184,7 +184,7 @@ check-x-vs-1:
|
||||
PATH=../src$(PATH_SEPARATOR)$$PATH; export PATH; \
|
||||
t=ls-files.$$$$; \
|
||||
(cd $(srcdir) && ls -1 *.x) | sed 's/\.x$$//' | $(ASSORT) > $$t;\
|
||||
- (echo $(dist_man1_MANS) $(NO_INSTALL_PROGS_DEFAULT) \
|
||||
+ (echo $(dist_man1_MANS) $(NO_INSTALL_PROGS_DEFAULT) hostid \
|
||||
| tr -s ' ' '\n' | sed 's/\.1$$//') \
|
||||
| $(ASSORT) -u | diff - $$t || { rm $$t; exit 1; }; \
|
||||
rm $$t
|
||||
--- man/Makefile.in
|
||||
+++ man/Makefile.in
|
||||
@@ -1275,7 +1275,7 @@ check-x-vs-1:
|
||||
PATH=../src$(PATH_SEPARATOR)$$PATH; export PATH; \
|
||||
t=ls-files.$$$$; \
|
||||
(cd $(srcdir) && ls -1 *.x) | sed 's/\.x$$//' | $(ASSORT) > $$t;\
|
||||
- (echo $(dist_man1_MANS) $(NO_INSTALL_PROGS_DEFAULT) \
|
||||
+ (echo $(dist_man1_MANS) $(NO_INSTALL_PROGS_DEFAULT) hostid \
|
||||
| tr -s ' ' '\n' | sed 's/\.1$$//') \
|
||||
| $(ASSORT) -u | diff - $$t || { rm $$t; exit 1; }; \
|
||||
rm $$t
|
||||
--- src/system.h
|
||||
+++ src/system.h
|
||||
@@ -156,7 +156,7 @@ enum
|
||||
# define DEV_BSIZE BBSIZE
|
||||
#endif
|
||||
#ifndef DEV_BSIZE
|
||||
-# define DEV_BSIZE 4096
|
||||
+# define DEV_BSIZE 512
|
||||
#endif
|
||||
|
||||
/* Extract or fake data from a `struct stat'.
|
||||
--- tests/misc/help-version
|
||||
+++ tests/misc/help-version
|
||||
@@ -182,6 +182,7 @@ lbracket_args=": ]"
|
||||
for i in $built_programs; do
|
||||
# Skip these.
|
||||
case $i in chroot|stty|tty|false|chcon|runcon) continue;; esac
|
||||
+ case $i in df) continue;; esac
|
||||
|
||||
rm -rf $tmp_in $tmp_in2 $tmp_dir $tmp_out
|
||||
echo > $tmp_in
|
||||
--- tests/other-fs-tmpdir
|
||||
+++ tests/other-fs-tmpdir
|
||||
@@ -42,6 +42,8 @@ for d in $CANDIDATE_TMP_DIRS; do
|
||||
fi
|
||||
|
||||
done
|
||||
+# Autobuild hack
|
||||
+test -f /bin/uname.bin && other_partition_tmpdir=
|
||||
|
||||
if test -z "$other_partition_tmpdir"; then
|
||||
skip_test_ \
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a584c6ce92f390c684dac00032e5c790ecc15cb0fa3e61891ac62401832ae108
|
||||
size 3967824
|
4066
coreutils-8.5-i18n.patch
Normal file
4066
coreutils-8.5-i18n.patch
Normal file
File diff suppressed because it is too large
Load Diff
67
coreutils-8.5.patch
Normal file
67
coreutils-8.5.patch
Normal file
@ -0,0 +1,67 @@
|
||||
Index: gnulib-tests/test-isnanl.h
|
||||
===================================================================
|
||||
--- gnulib-tests/test-isnanl.h.orig 2010-03-13 16:21:09.000000000 +0100
|
||||
+++ gnulib-tests/test-isnanl.h 2010-05-05 13:47:16.003024388 +0200
|
||||
@@ -63,7 +63,7 @@ main ()
|
||||
/* Quiet NaN. */
|
||||
ASSERT (isnanl (NaNl ()));
|
||||
|
||||
-#if defined LDBL_EXPBIT0_WORD && defined LDBL_EXPBIT0_BIT
|
||||
+#if defined LDBL_EXPBIT0_WORD && defined LDBL_EXPBIT0_BIT && 0
|
||||
/* A bit pattern that is different from a Quiet NaN. With a bit of luck,
|
||||
it's a Signalling NaN. */
|
||||
{
|
||||
@@ -105,6 +105,7 @@ main ()
|
||||
{ LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) };
|
||||
ASSERT (isnanl (x.value));
|
||||
}
|
||||
+#if 0
|
||||
/* The isnanl function should recognize Pseudo-NaNs, Pseudo-Infinities,
|
||||
Pseudo-Zeroes, Unnormalized Numbers, and Pseudo-Denormals, as defined in
|
||||
Intel IA-64 Architecture Software Developer's Manual, Volume 1:
|
||||
@@ -138,6 +139,7 @@ main ()
|
||||
ASSERT (isnanl (x.value));
|
||||
}
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
Index: src/system.h
|
||||
===================================================================
|
||||
--- src/system.h.orig 2010-04-20 21:52:05.000000000 +0200
|
||||
+++ src/system.h 2010-05-05 13:38:20.923127872 +0200
|
||||
@@ -138,7 +138,7 @@ enum
|
||||
# define DEV_BSIZE BBSIZE
|
||||
#endif
|
||||
#ifndef DEV_BSIZE
|
||||
-# define DEV_BSIZE 4096
|
||||
+# define DEV_BSIZE 512
|
||||
#endif
|
||||
|
||||
/* Extract or fake data from a `struct stat'.
|
||||
Index: tests/misc/help-version
|
||||
===================================================================
|
||||
--- tests/misc/help-version.orig 2010-04-20 21:52:05.000000000 +0200
|
||||
+++ tests/misc/help-version 2010-05-05 13:44:11.919859133 +0200
|
||||
@@ -239,6 +239,7 @@ lbracket_setup () { args=": ]"; }
|
||||
for i in $built_programs; do
|
||||
# Skip these.
|
||||
case $i in chroot|stty|tty|false|chcon|runcon) continue;; esac
|
||||
+ case $i in df) continue;; esac
|
||||
|
||||
rm -rf $tmp_in $tmp_in2 $tmp_dir $tmp_out $bigZ_in $zin $zin2
|
||||
echo z |gzip > $zin
|
||||
Index: tests/other-fs-tmpdir
|
||||
===================================================================
|
||||
--- tests/other-fs-tmpdir.orig 2010-01-01 14:06:47.000000000 +0100
|
||||
+++ tests/other-fs-tmpdir 2010-05-05 13:38:20.982872202 +0200
|
||||
@@ -43,6 +43,8 @@ for d in $CANDIDATE_TMP_DIRS; do
|
||||
fi
|
||||
|
||||
done
|
||||
+# Autobuild hack
|
||||
+test -f /bin/uname.bin && other_partition_tmpdir=
|
||||
|
||||
if test -z "$other_partition_tmpdir"; then
|
||||
skip_test_ \
|
3
coreutils-8.5.tar.xz
Normal file
3
coreutils-8.5.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5aa855caa08b94ccd632510d9ab265646d2ee11498c7efff205b27c2437dec5a
|
||||
size 4531488
|
@ -1,6 +1,8 @@
|
||||
--- src/dircolors.hin
|
||||
+++ src/dircolors.hin
|
||||
@@ -151,6 +151,7 @@
|
||||
Index: src/dircolors.hin
|
||||
===================================================================
|
||||
--- src/dircolors.hin.orig 2010-04-20 21:52:04.000000000 +0200
|
||||
+++ src/dircolors.hin 2010-05-05 16:22:16.375859309 +0200
|
||||
@@ -158,6 +158,7 @@ EXEC 01;32
|
||||
.m2v 01;35
|
||||
.mkv 01;35
|
||||
.ogm 01;35
|
||||
|
@ -1,35 +0,0 @@
|
||||
--- src/fs.h
|
||||
+++ src/fs.h
|
||||
@@ -5,10 +5,12 @@
|
||||
#if defined __linux__
|
||||
# define S_MAGIC_ADFS 0xADF5
|
||||
# define S_MAGIC_AFFS 0xADFF
|
||||
+# define S_MAGIC_AFS 0x6B414653
|
||||
# define S_MAGIC_AUTOFS 0x187
|
||||
# define S_MAGIC_BEFS 0x42465331
|
||||
# define S_MAGIC_BFS 0x1BADFACE
|
||||
# define S_MAGIC_BINFMT_MISC 0x42494e4d
|
||||
+# define S_MAGIC_CIFS 0xFF534D42
|
||||
# define S_MAGIC_CODA 0x73757245
|
||||
# define S_MAGIC_COH 0x012FF7B7
|
||||
# define S_MAGIC_CRAMFS 0x28CD3D45
|
||||
--- src/stat.c
|
||||
+++ src/stat.c
|
||||
@@ -219,6 +219,8 @@ human_fstype (STRUCT_STATVFS const *stat
|
||||
return "adfs";
|
||||
case S_MAGIC_AFFS: /* 0xADFF */
|
||||
return "affs";
|
||||
+ case S_MAGIC_AFS: /* 0x6B414653 */
|
||||
+ return "afs";
|
||||
case S_MAGIC_AUTOFS: /* 0x187 */
|
||||
return "autofs";
|
||||
case S_MAGIC_BEFS: /* 0x42465331 */
|
||||
@@ -227,6 +229,8 @@ human_fstype (STRUCT_STATVFS const *stat
|
||||
return "bfs";
|
||||
case S_MAGIC_BINFMT_MISC: /* 0x42494e4d */
|
||||
return "binfmt_misc";
|
||||
+ case S_MAGIC_CIFS: /* 0xFF534D42 */
|
||||
+ return "cifs";
|
||||
case S_MAGIC_CODA: /* 0x73757245 */
|
||||
return "coda";
|
||||
case S_MAGIC_COH: /* 0x012FF7B7 */
|
@ -1,80 +0,0 @@
|
||||
Index: maint.mk
|
||||
===================================================================
|
||||
--- maint.mk.orig 2009-02-18 16:13:19.000000000 +0100
|
||||
+++ maint.mk 2010-05-04 17:45:14.515359143 +0200
|
||||
@@ -623,14 +623,14 @@ bin=bin-$$$$
|
||||
|
||||
write_loser = printf '\#!%s\necho $$0: bad path 1>&2; exit 1\n' '$(SHELL)'
|
||||
|
||||
-TMPDIR ?= /tmp
|
||||
-t=$(TMPDIR)/$(PACKAGE)/test
|
||||
+tmpdir = $(abs_top_builddir)/tests/torture
|
||||
+
|
||||
pfx=$(t)/i
|
||||
|
||||
# More than once, tainted build and source directory names would
|
||||
# have caused at least one "make check" test to apply "chmod 700"
|
||||
# to all directories under $HOME. Make sure it doesn't happen again.
|
||||
-tp := $(shell echo "$(TMPDIR)/$(PACKAGE)-$$$$")
|
||||
+tp = $(tmpdir)/taint
|
||||
t_prefix = $(tp)/a
|
||||
t_taint = '$(t_prefix) b'
|
||||
fake_home = $(tp)/home
|
||||
@@ -648,10 +648,11 @@ taint-distcheck: $(DIST_ARCHIVES)
|
||||
touch $(fake_home)/f
|
||||
mkdir -p $(fake_home)/d/e
|
||||
ls -lR $(fake_home) $(t_prefix) > $(tp)/.ls-before
|
||||
+ HOME=$(fake_home); export HOME; \
|
||||
cd $(t_taint)/$(distdir) \
|
||||
&& ./configure \
|
||||
&& $(MAKE) \
|
||||
- && HOME=$(fake_home) $(MAKE) check \
|
||||
+ && $(MAKE) check \
|
||||
&& ls -lR $(fake_home) $(t_prefix) > $(tp)/.ls-after \
|
||||
&& diff $(tp)/.ls-before $(tp)/.ls-after \
|
||||
&& test -d $(t_prefix)
|
||||
@@ -670,6 +671,7 @@ endef
|
||||
# Install, then verify that all binaries and man pages are in place.
|
||||
# Note that neither the binary, ginstall, nor the ].1 man page is installed.
|
||||
define my-instcheck
|
||||
+ echo running my-instcheck; \
|
||||
$(MAKE) prefix=$(pfx) install \
|
||||
&& test ! -f $(pfx)/bin/ginstall \
|
||||
&& { fail=0; \
|
||||
@@ -688,6 +690,7 @@ endef
|
||||
|
||||
define coreutils-path-check
|
||||
{ \
|
||||
+ echo running coreutils-path-check; \
|
||||
if test -f $(srcdir)/src/true.c; then \
|
||||
fail=1; \
|
||||
mkdir $(bin) \
|
||||
@@ -732,19 +735,20 @@ my-distcheck: $(DIST_ARCHIVES) $(local-c
|
||||
-rm -rf $(t)
|
||||
mkdir -p $(t)
|
||||
GZIP=$(GZIP_ENV) $(AMTAR) -C $(t) -zxf $(distdir).tar.gz
|
||||
- cd $(t)/$(distdir) \
|
||||
- && ./configure --disable-nls \
|
||||
- && $(MAKE) CFLAGS='$(warn_cflags)' \
|
||||
- AM_MAKEFLAGS='$(null_AM_MAKEFLAGS)' \
|
||||
- && $(MAKE) dvi \
|
||||
- && $(install-transform-check) \
|
||||
- && $(my-instcheck) \
|
||||
- && $(coreutils-path-check) \
|
||||
+ cd $(t)/$(distdir) \
|
||||
+ && ./configure --quiet --enable-gcc-warnings --disable-nls \
|
||||
+ && $(MAKE) CFLAGS='$(warn_cflags)' \
|
||||
+ AM_MAKEFLAGS='$(null_AM_MAKEFLAGS)' \
|
||||
+ && $(MAKE) dvi \
|
||||
+ && $(install-transform-check) \
|
||||
+ && $(my-instcheck) \
|
||||
+ && $(coreutils-path-check) \
|
||||
&& $(MAKE) distclean
|
||||
(cd $(t) && mv $(distdir) $(distdir).old \
|
||||
&& $(AMTAR) -zxf - ) < $(distdir).tar.gz
|
||||
diff -ur $(t)/$(distdir).old $(t)/$(distdir)
|
||||
-rm -rf $(t)
|
||||
+ rmdir $(tmpdir)/$(PACKAGE) $(tmpdir)
|
||||
@echo "========================"; \
|
||||
echo "$(distdir).tar.gz is ready for distribution"; \
|
||||
echo "========================"
|
@ -1,16 +0,0 @@
|
||||
Index: coreutils-6.9.90/gnulib-tests/test-getaddrinfo.c
|
||||
================================================================================
|
||||
--- coreutils-7.1/gnulib-tests/test-getaddrinfo.c
|
||||
+++ coreutils-7.1/gnulib-tests/test-getaddrinfo.c
|
||||
@@ -71,10 +71,7 @@ int simple (char *host, char *service)
|
||||
the test merely because someone is down the country on their
|
||||
in-law's farm. */
|
||||
if (res == EAI_AGAIN)
|
||||
- {
|
||||
- fprintf (stderr, "skipping getaddrinfo test: no network?\n");
|
||||
- return 77;
|
||||
- }
|
||||
+ return 0;
|
||||
/* IRIX reports EAI_NONAME for "https". Don't fail the test
|
||||
merely because of this. */
|
||||
if (res == EAI_NONAME)
|
17
coreutils-getaddrinfo.patch
Normal file
17
coreutils-getaddrinfo.patch
Normal file
@ -0,0 +1,17 @@
|
||||
Index: gnulib-tests/test-getaddrinfo.c
|
||||
===================================================================
|
||||
--- gnulib-tests/test-getaddrinfo.c.orig 2010-03-13 16:21:08.000000000 +0100
|
||||
+++ gnulib-tests/test-getaddrinfo.c 2010-05-05 14:51:40.343025353 +0200
|
||||
@@ -88,11 +88,7 @@ simple (char const *host, char const *se
|
||||
the test merely because someone is down the country on their
|
||||
in-law's farm. */
|
||||
if (res == EAI_AGAIN)
|
||||
- {
|
||||
- skip++;
|
||||
- fprintf (stderr, "skipping getaddrinfo test: no network?\n");
|
||||
- return 77;
|
||||
- }
|
||||
+ return 0;
|
||||
/* IRIX reports EAI_NONAME for "https". Don't fail the test
|
||||
merely because of this. */
|
||||
if (res == EAI_NONAME)
|
24
coreutils-gl_printf_safe.patch
Normal file
24
coreutils-gl_printf_safe.patch
Normal file
@ -0,0 +1,24 @@
|
||||
Index: configure
|
||||
===================================================================
|
||||
--- configure.orig 2010-04-23 18:06:40.000000000 +0200
|
||||
+++ configure 2010-05-05 13:40:11.419859163 +0200
|
||||
@@ -3340,7 +3340,6 @@ as_fn_append ac_func_list " alarm"
|
||||
as_fn_append ac_header_list " sys/statvfs.h"
|
||||
as_fn_append ac_header_list " sys/select.h"
|
||||
as_fn_append ac_func_list " nl_langinfo"
|
||||
-gl_printf_safe=yes
|
||||
as_fn_append ac_header_list " utmp.h"
|
||||
as_fn_append ac_header_list " utmpx.h"
|
||||
as_fn_append ac_func_list " utmpname"
|
||||
Index: m4/gnulib-comp.m4
|
||||
===================================================================
|
||||
--- m4/gnulib-comp.m4.orig 2010-04-21 20:12:06.000000000 +0200
|
||||
+++ m4/gnulib-comp.m4 2010-05-05 13:40:58.875859176 +0200
|
||||
@@ -1158,7 +1158,6 @@ AC_DEFUN([gl_INIT],
|
||||
# Code from module printf-frexpl:
|
||||
gl_FUNC_PRINTF_FREXPL
|
||||
# Code from module printf-safe:
|
||||
- m4_divert_text([INIT_PREPARE], [gl_printf_safe=yes])
|
||||
# Code from module priv-set:
|
||||
gl_PRIV_SET
|
||||
# Code from module progname:
|
14
coreutils-i18n-infloop.patch
Normal file
14
coreutils-i18n-infloop.patch
Normal file
@ -0,0 +1,14 @@
|
||||
Index: src/sort.c
|
||||
===================================================================
|
||||
--- src/sort.c.orig 2010-05-07 16:52:08.068491875 +0200
|
||||
+++ src/sort.c 2010-05-07 16:53:44.704992155 +0200
|
||||
@@ -2720,7 +2720,8 @@ keycompare_mb (const struct line *a, con
|
||||
if (MBLENGTH == (size_t)-2 || MBLENGTH == (size_t)-1) \
|
||||
STATE = state_bak; \
|
||||
if (!ignore) \
|
||||
- COPY[NEW_LEN++] = TEXT[i++]; \
|
||||
+ COPY[NEW_LEN++] = TEXT[i]; \
|
||||
+ i++; \
|
||||
continue; \
|
||||
} \
|
||||
\
|
16
coreutils-i18n-uninit.patch
Normal file
16
coreutils-i18n-uninit.patch
Normal file
@ -0,0 +1,16 @@
|
||||
Index: src/cut.c
|
||||
===================================================================
|
||||
--- src/cut.c.orig 2010-05-06 15:16:26.851859241 +0200
|
||||
+++ src/cut.c 2010-05-06 15:16:27.095859170 +0200
|
||||
@@ -878,7 +878,10 @@ cut_fields_mb (FILE *stream)
|
||||
c = getc (stream);
|
||||
empty_input = (c == EOF);
|
||||
if (c != EOF)
|
||||
- ungetc (c, stream);
|
||||
+ {
|
||||
+ ungetc (c, stream);
|
||||
+ wc = 0;
|
||||
+ }
|
||||
else
|
||||
wc = WEOF;
|
||||
|
26
coreutils-invalid-ids.patch
Normal file
26
coreutils-invalid-ids.patch
Normal file
@ -0,0 +1,26 @@
|
||||
While uid_t and gid_t are both unsigned, the values (uid_t) -1 and
|
||||
(gid_t) -1 are reserved. A uid or gid argument of -1 to the chown(2)
|
||||
system call means to leave the uid/gid unchanged. Catch this case
|
||||
so that trying to set a uid or gid to -1 will result in an error.
|
||||
|
||||
Test cases:
|
||||
|
||||
chown 4294967295 file
|
||||
chown :4294967295 file
|
||||
chgrp 4294967295 file
|
||||
|
||||
Andreas Gruenbacher <agruen@suse.de>
|
||||
|
||||
Index: src/chgrp.c
|
||||
===================================================================
|
||||
--- src/chgrp.c.orig 2010-01-01 14:06:47.000000000 +0100
|
||||
+++ src/chgrp.c 2010-05-05 14:03:28.279359192 +0200
|
||||
@@ -89,7 +89,7 @@ parse_group (const char *name)
|
||||
{
|
||||
unsigned long int tmp;
|
||||
if (! (xstrtoul (name, NULL, 10, &tmp, "") == LONGINT_OK
|
||||
- && tmp <= GID_T_MAX))
|
||||
+ && tmp <= GID_T_MAX && (gid_t) tmp != (gid_t) -1))
|
||||
error (EXIT_FAILURE, 0, _("invalid group: %s"), quote (name));
|
||||
gid = tmp;
|
||||
}
|
122
coreutils-no_hostname_and_hostid.patch
Normal file
122
coreutils-no_hostname_and_hostid.patch
Normal file
@ -0,0 +1,122 @@
|
||||
Index: doc/coreutils.texi
|
||||
===================================================================
|
||||
--- doc/coreutils.texi.orig 2010-05-06 15:17:48.132359317 +0200
|
||||
+++ doc/coreutils.texi 2010-05-06 15:21:02.631693747 +0200
|
||||
@@ -65,8 +65,6 @@
|
||||
* fold: (coreutils)fold invocation. Wrap long input lines.
|
||||
* groups: (coreutils)groups invocation. Print group names a user is in.
|
||||
* head: (coreutils)head invocation. Output the first part of files.
|
||||
-* hostid: (coreutils)hostid invocation. Print numeric host identifier.
|
||||
-* hostname: (coreutils)hostname invocation. Print or set system name.
|
||||
* id: (coreutils)id invocation. Print user identity.
|
||||
* install: (coreutils)install invocation. Copy and change attributes.
|
||||
* join: (coreutils)join invocation. Join lines on a common field.
|
||||
@@ -197,7 +195,7 @@ Free Documentation License''.
|
||||
* File name manipulation:: dirname basename pathchk mktemp
|
||||
* Working context:: pwd stty printenv tty
|
||||
* User information:: id logname whoami groups users who
|
||||
-* System context:: date arch nproc uname hostname hostid uptime
|
||||
+* System context:: date arch nproc uname uptime
|
||||
* SELinux context:: chcon runcon
|
||||
* Modified command invocation:: chroot env nice nohup stdbuf su timeout
|
||||
* Process control:: kill
|
||||
@@ -413,8 +411,6 @@ System context
|
||||
* date invocation:: Print or set system date and time
|
||||
* nproc invocation:: Print the number of processors
|
||||
* uname invocation:: Print system information
|
||||
-* hostname invocation:: Print or set system name
|
||||
-* hostid invocation:: Print numeric host identifier
|
||||
* uptime invocation:: Print system uptime and load
|
||||
|
||||
@command{date}: Print or set system date and time
|
||||
@@ -13449,8 +13445,6 @@ information.
|
||||
* arch invocation:: Print machine hardware name.
|
||||
* nproc invocation:: Print the number of processors.
|
||||
* uname invocation:: Print system information.
|
||||
-* hostname invocation:: Print or set system name.
|
||||
-* hostid invocation:: Print numeric host identifier.
|
||||
* uptime invocation:: Print system uptime and load.
|
||||
@end menu
|
||||
|
||||
@@ -14272,55 +14266,6 @@ Print the kernel version.
|
||||
|
||||
@exitstatus
|
||||
|
||||
-
|
||||
-@node hostname invocation
|
||||
-@section @command{hostname}: Print or set system name
|
||||
-
|
||||
-@pindex hostname
|
||||
-@cindex setting the hostname
|
||||
-@cindex printing the hostname
|
||||
-@cindex system name, printing
|
||||
-@cindex appropriate privileges
|
||||
-
|
||||
-With no arguments, @command{hostname} prints the name of the current host
|
||||
-system. With one argument, it sets the current host name to the
|
||||
-specified string. You must have appropriate privileges to set the host
|
||||
-name. Synopsis:
|
||||
-
|
||||
-@example
|
||||
-hostname [@var{name}]
|
||||
-@end example
|
||||
-
|
||||
-The only options are @option{--help} and @option{--version}. @xref{Common
|
||||
-options}.
|
||||
-
|
||||
-@exitstatus
|
||||
-
|
||||
-
|
||||
-@node hostid invocation
|
||||
-@section @command{hostid}: Print numeric host identifier
|
||||
-
|
||||
-@pindex hostid
|
||||
-@cindex printing the host identifier
|
||||
-
|
||||
-@command{hostid} prints the numeric identifier of the current host
|
||||
-in hexadecimal. This command accepts no arguments.
|
||||
-The only options are @option{--help} and @option{--version}.
|
||||
-@xref{Common options}.
|
||||
-
|
||||
-For example, here's what it prints on one system I use:
|
||||
-
|
||||
-@example
|
||||
-$ hostid
|
||||
-1bac013d
|
||||
-@end example
|
||||
-
|
||||
-On that system, the 32-bit quantity happens to be closely
|
||||
-related to the system's Internet address, but that isn't always
|
||||
-the case.
|
||||
-
|
||||
-@exitstatus
|
||||
-
|
||||
@node uptime invocation
|
||||
@section @command{uptime}: Print system uptime and load
|
||||
|
||||
Index: man/Makefile.am
|
||||
===================================================================
|
||||
--- man/Makefile.am.orig 2010-05-06 15:17:48.136359276 +0200
|
||||
+++ man/Makefile.am 2010-05-06 15:18:44.844359168 +0200
|
||||
@@ -197,7 +197,7 @@ check-x-vs-1:
|
||||
@PATH=../src$(PATH_SEPARATOR)$$PATH; export PATH; \
|
||||
t=$@-t; \
|
||||
(cd $(srcdir) && ls -1 *.x) | sed 's/\.x$$//' | $(ASSORT) > $$t;\
|
||||
- (echo $(dist_man1_MANS) $(NO_INSTALL_PROGS_DEFAULT) \
|
||||
+ (echo $(dist_man1_MANS) $(NO_INSTALL_PROGS_DEFAULT) hostid \
|
||||
| tr -s ' ' '\n' | sed 's/\.1$$//') \
|
||||
| $(ASSORT) -u | diff - $$t || { rm $$t; exit 1; }; \
|
||||
rm $$t
|
||||
Index: man/Makefile.in
|
||||
===================================================================
|
||||
--- man/Makefile.in.orig 2010-05-06 15:17:48.136359276 +0200
|
||||
+++ man/Makefile.in 2010-05-06 15:18:44.875852631 +0200
|
||||
@@ -1574,7 +1574,7 @@ check-x-vs-1:
|
||||
@PATH=../src$(PATH_SEPARATOR)$$PATH; export PATH; \
|
||||
t=$@-t; \
|
||||
(cd $(srcdir) && ls -1 *.x) | sed 's/\.x$$//' | $(ASSORT) > $$t;\
|
||||
- (echo $(dist_man1_MANS) $(NO_INSTALL_PROGS_DEFAULT) \
|
||||
+ (echo $(dist_man1_MANS) $(NO_INSTALL_PROGS_DEFAULT) hostid \
|
||||
| tr -s ' ' '\n' | sed 's/\.1$$//') \
|
||||
| $(ASSORT) -u | diff - $$t || { rm $$t; exit 1; }; \
|
||||
rm $$t
|
@ -1,10 +1,10 @@
|
||||
Index: src/uname.c
|
||||
===================================================================
|
||||
--- src/uname.c.orig 2010-05-04 17:27:48.679359310 +0200
|
||||
+++ src/uname.c 2010-05-04 17:29:03.011859260 +0200
|
||||
--- src/uname.c.orig 2010-01-01 14:06:47.000000000 +0100
|
||||
+++ src/uname.c 2010-05-05 13:58:03.471359120 +0200
|
||||
@@ -339,6 +339,36 @@ main (int argc, char **argv)
|
||||
# endif
|
||||
}
|
||||
}
|
||||
#endif
|
||||
+ if (element == unknown)
|
||||
+ {
|
||||
@ -37,11 +37,11 @@ Index: src/uname.c
|
||||
+#endif
|
||||
+ }
|
||||
if (! (toprint == UINT_MAX && element == unknown))
|
||||
print_element (element);
|
||||
print_element (element);
|
||||
}
|
||||
@@ -364,6 +394,18 @@ main (int argc, char **argv)
|
||||
element = hardware_platform;
|
||||
}
|
||||
element = hardware_platform;
|
||||
}
|
||||
#endif
|
||||
+ if (element == unknown)
|
||||
+ {
|
||||
@ -56,5 +56,5 @@ Index: src/uname.c
|
||||
+ element = hardware_platform;
|
||||
+ }
|
||||
if (! (toprint == UINT_MAX && element == unknown))
|
||||
print_element (element);
|
||||
print_element (element);
|
||||
}
|
@ -1,9 +1,78 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 1 21:23:40 UTC 2010 - jengelh@medozas.de
|
||||
|
||||
- Use %_smp_mflags
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 29 20:18:04 CEST 2010 - pth@suse.de
|
||||
|
||||
- Fix 'sort -V' not working because the i18n (mb handling) patch
|
||||
wasn't updated to handle the new option (bnc#615073).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 28 12:52:15 CEST 2010 - pth@suse.de
|
||||
|
||||
- Fix typo in spec file (% missing from version).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 18 11:57:47 CEST 2010 - kukuk@suse.de
|
||||
|
||||
- Last part of fix for [bnc#533249]: Don't run account part of
|
||||
PAM stack for su as root. Requires pam > 1.1.1.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 7 15:44:53 UTC 2010 - pth@novell.com
|
||||
|
||||
- Update to 8.5:
|
||||
Bug fixes
|
||||
* cp and mv once again support preserving extended attributes.
|
||||
* cp now preserves "capabilities" when also preserving file ownership.7
|
||||
* ls --color once again honors the 'NORMAL' dircolors directive.
|
||||
[bug introduced in coreutils-6.11]
|
||||
* sort -M now handles abbreviated months that are aligned using
|
||||
blanks in the locale database. Also locales with 8 bit characters
|
||||
are handled correctly, including multi byte locales with the caveat
|
||||
that multi byte characters are matched case sensitively.
|
||||
* sort again handles obsolescent key formats (+POS -POS) correctly.
|
||||
Previously if -POS was specified, 1 field too many was used in the
|
||||
sort. [bug introduced in coreutils-7.2]
|
||||
|
||||
New features
|
||||
|
||||
* join now accepts the --header option, to treat the first line of
|
||||
each file as a header line to be joined and printed
|
||||
unconditionally.
|
||||
|
||||
* timeout now accepts the --kill-after option which sends a kill
|
||||
signal to the monitored command if it's still running the specified
|
||||
duration after the initial signal was sent.
|
||||
|
||||
* who: the "+/-" --mesg (-T) indicator of whether a user/tty is
|
||||
accepting messages could be incorrectly listed as "+", when in
|
||||
fact, the user was not accepting messages (mesg no). Before, who
|
||||
would examine only the permission bits, and not consider the group
|
||||
of the TTY device file. Thus, if a login tty's group would change
|
||||
somehow e.g., to "root", that would make it unwritable (via
|
||||
write(1)) by normal users, in spite of whatever the permission bits
|
||||
might imply. Now, when configured using the
|
||||
--with-tty-group[=NAME] option, who also compares the group of the
|
||||
TTY device with NAME (or "tty" if no group name is specified).
|
||||
|
||||
Changes in behavior
|
||||
|
||||
* ls --color no longer emits the final 3-byte color-resetting escape
|
||||
sequence when it would be a no-op.
|
||||
|
||||
* join -t '' no longer emits an error and instead operates on each
|
||||
line as a whole (even if they contain NUL characters).
|
||||
|
||||
For other changes since 7.1 see NEWS.
|
||||
- Split-up coreutils-%%{version}.diff as far as possible.
|
||||
- Prefix all patches with coreutils-.
|
||||
- All patches have the .patch suffix.
|
||||
- Use the i18n patch from Archlinux as it fixes at least one test
|
||||
suite failure.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 4 17:13:37 UTC 2010 - pth@novell.com
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# spec file for package coreutils (Version 7.1)
|
||||
# spec file for package coreutils (Version 8.5)
|
||||
#
|
||||
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
@ -23,34 +23,32 @@ BuildRequires: help2man libacl-devel libcap-devel libselinux-devel pam-devel xz
|
||||
Url: http://www.gnu.org/software/coreutils/
|
||||
License: GFDLv1.2 ; GPLv2+ ; GPLv3+
|
||||
Group: System/Base
|
||||
Version: 7.1
|
||||
Release: 6
|
||||
Provides: fileutils sh-utils stat textutils mktemp
|
||||
Obsoletes: fileutils sh-utils stat textutils mktemp
|
||||
Version: 8.5
|
||||
Release: 1
|
||||
Provides: fileutils = %{version}, sh-utils = %{version}, stat = %version}, textutils = %{version}, mktemp = %{version}
|
||||
Obsoletes: fileutils < %{version}, sh-utils < %{version}, stat < %version}, textutils < %{version}, mktemp < %{version}
|
||||
Obsoletes: libselinux <= 1.23.11-3 libselinux-32bit = 9 libselinux-64bit = 9 libselinux-x86 = 9
|
||||
AutoReqProv: on
|
||||
PreReq: %{install_info_prereq}
|
||||
Requires: %{name}-lang = %version
|
||||
Requires: pam >= 1.1.1.90
|
||||
Source: coreutils-%{version}.tar.xz
|
||||
Source1: su.pamd
|
||||
Source2: su.default
|
||||
Source3: baselibs.conf
|
||||
Patch: coreutils-%{version}.diff
|
||||
Patch4: coreutils-5.3.0-i18n-0.1.patch
|
||||
Patch5: i18n-uninit.diff
|
||||
Patch6: i18n-infloop.diff
|
||||
Patch8: coreutils-sysinfo.diff
|
||||
Patch11: i18n-monthsort.diff
|
||||
Patch12: i18n-random.diff
|
||||
Patch16: invalid-ids.diff
|
||||
Patch17: i18n-limfield.diff
|
||||
Patch20: coreutils-6.8-su.diff
|
||||
Patch21: coreutils-6.8.0-pie.diff
|
||||
Patch22: coreutils-5.3.0-sbin4su.diff
|
||||
Patch23: coreutils-getaddrinfo.diff
|
||||
Patch25: coreutils-cifs-afs.diff
|
||||
Patch0: coreutils-%{version}.patch
|
||||
Patch1: coreutils-no_hostname_and_hostid.patch
|
||||
Patch2: coreutils-gl_printf_safe.patch
|
||||
Patch4: coreutils-8.5-i18n.patch
|
||||
Patch5: coreutils-i18n-uninit.patch
|
||||
Patch6: coreutils-i18n-infloop.patch
|
||||
Patch8: coreutils-sysinfo.patch
|
||||
Patch16: coreutils-invalid-ids.patch
|
||||
Patch20: coreutils-6.8-su.patch
|
||||
Patch21: coreutils-6.8.0-pie.patch
|
||||
Patch22: coreutils-5.3.0-sbin4su.patch
|
||||
Patch23: coreutils-getaddrinfo.patch
|
||||
Patch26: coreutils-add_ogv.patch
|
||||
Patch27: coreutils-fix_distcheck.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
%description
|
||||
@ -107,48 +105,44 @@ Authors:
|
||||
%lang_package
|
||||
%prep
|
||||
%setup -q
|
||||
%patch4 -p1
|
||||
%patch4
|
||||
%patch5
|
||||
%patch6
|
||||
%patch
|
||||
%patch0
|
||||
%patch1
|
||||
%patch2
|
||||
%patch8
|
||||
%patch11
|
||||
%patch12
|
||||
%patch16
|
||||
%patch17
|
||||
%patch20
|
||||
%patch21
|
||||
%patch22
|
||||
%patch23 -p1
|
||||
%patch25
|
||||
%patch23
|
||||
%patch26
|
||||
%patch27
|
||||
|
||||
%build
|
||||
#AUTOPOINT=true autoreconf -fi
|
||||
./configure CFLAGS="$RPM_OPT_FLAGS -Wall" \
|
||||
--prefix=%{_prefix} --mandir=%{_mandir} \
|
||||
--infodir=%{_infodir} --without-included-regex \
|
||||
AUTOPOINT=true autoreconf -fi
|
||||
export CFLAGS="%optflags -Wall"
|
||||
%configure --without-included-regex \
|
||||
--enable-install-program=arch,su \
|
||||
gl_cv_func_printf_directive_n=yes \
|
||||
gl_cv_func_isnanl_works=yes \
|
||||
DEFAULT_POSIX2_VERSION=199209
|
||||
make %{?jobs:-j%jobs} PAMLIBS="-lpam -ldl"
|
||||
make %{?_smp_mflags} PAMLIBS="-lpam -ldl" V=1
|
||||
|
||||
%check
|
||||
if test $EUID -eq 0; then
|
||||
su nobody -c make %{?jobs:-j%jobs} check VERBOSE=yes
|
||||
make %{?jobs:-j%jobs} check-root VERBOSE=yes
|
||||
su nobody -c make %{?_smp_mflags} check VERBOSE=yes V=1
|
||||
make %{?_smp_mflags} check-root VERBOSE=yes V=1
|
||||
else
|
||||
%ifarch %arm
|
||||
make -k %{?jobs:-j%jobs} check VERBOSE=yes || echo make check failed
|
||||
make -k %{?_smp_mflags} check VERBOSE=yes V=1 || echo make check failed
|
||||
%else
|
||||
make %{?jobs:-j%jobs} check VERBOSE=yes
|
||||
make %{?_smp_mflags} check VERBOSE=yes V=1
|
||||
%endif
|
||||
fi
|
||||
|
||||
%install
|
||||
make DESTDIR="$RPM_BUILD_ROOT" install
|
||||
%makeinstall
|
||||
test -f $RPM_BUILD_ROOT%{_bindir}/su || \
|
||||
install src/su $RPM_BUILD_ROOT%{_bindir}/su
|
||||
install -d $RPM_BUILD_ROOT/bin
|
||||
@ -182,6 +176,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%config /etc/pam.d/su-l
|
||||
%config(noreplace) /etc/default/su
|
||||
%{_bindir}/*
|
||||
%{_libdir}/%{name}
|
||||
%doc %{_infodir}/coreutils.info*.gz
|
||||
%doc %{_mandir}/man1/*.1.gz
|
||||
%dir %{_prefix}/share/locale/*/LC_TIME
|
||||
|
@ -1,14 +0,0 @@
|
||||
Index: src/sort.c
|
||||
===================================================================
|
||||
--- src/sort.c.orig 2010-05-04 17:27:49.103359264 +0200
|
||||
+++ src/sort.c 2010-05-04 17:28:43.820359291 +0200
|
||||
@@ -2540,7 +2540,8 @@ keycompare_mb (const struct line *a, con
|
||||
if (MBLENGTH == (size_t)-2 || MBLENGTH == (size_t)-1) \
|
||||
STATE = state_bak; \
|
||||
if (!ignore) \
|
||||
- COPY[NEW_LEN++] = TEXT[i++]; \
|
||||
+ COPY[NEW_LEN++] = TEXT[i]; \
|
||||
+ i++; \
|
||||
continue; \
|
||||
} \
|
||||
\
|
@ -1,100 +0,0 @@
|
||||
Index: src/sort.c
|
||||
===================================================================
|
||||
--- src/sort.c.orig 2010-05-04 17:29:12.419359202 +0200
|
||||
+++ src/sort.c 2010-05-04 17:29:12.479359419 +0200
|
||||
@@ -1731,7 +1731,7 @@ limfield_mb (const struct line *line, co
|
||||
GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
|
||||
ptr += mblength;
|
||||
}
|
||||
- if (ptr < lim)
|
||||
+ if (ptr < lim && (eword | echar))
|
||||
{
|
||||
GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
|
||||
ptr += mblength;
|
||||
@@ -1742,11 +1742,6 @@ limfield_mb (const struct line *line, co
|
||||
{
|
||||
while (ptr < lim && ismbblank (ptr, &mblength))
|
||||
ptr += mblength;
|
||||
- if (ptr < lim)
|
||||
- {
|
||||
- GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
|
||||
- ptr += mblength;
|
||||
- }
|
||||
while (ptr < lim && !ismbblank (ptr, &mblength))
|
||||
ptr += mblength;
|
||||
}
|
||||
@@ -1756,20 +1751,19 @@ limfield_mb (const struct line *line, co
|
||||
/* Make LIM point to the end of (one byte past) the current field. */
|
||||
if (tab != NULL)
|
||||
{
|
||||
- char *newlim, *p;
|
||||
+ char *newlim;
|
||||
|
||||
- newlim = NULL;
|
||||
- for (p = ptr; p < lim;)
|
||||
- {
|
||||
- if (memcmp (p, tab, tab_length) == 0)
|
||||
- {
|
||||
- newlim = p;
|
||||
- break;
|
||||
- }
|
||||
-
|
||||
- GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
|
||||
- p += mblength;
|
||||
- }
|
||||
+ for (newlim = ptr; newlim < lim;)
|
||||
+ {
|
||||
+ if (memcmp (newlim, tab, tab_length) == 0)
|
||||
+ {
|
||||
+ lim = newlim;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ GET_BYTELEN_OF_CHAR (lim, newlim, mblength, state);
|
||||
+ newlim += mblength;
|
||||
+ }
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1778,24 +1772,20 @@ limfield_mb (const struct line *line, co
|
||||
|
||||
while (newlim < lim && ismbblank (newlim, &mblength))
|
||||
newlim += mblength;
|
||||
- if (ptr < lim)
|
||||
- {
|
||||
- GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
|
||||
- ptr += mblength;
|
||||
- }
|
||||
while (newlim < lim && !ismbblank (newlim, &mblength))
|
||||
- newlim += mblength;
|
||||
+ newlim += mblength;
|
||||
lim = newlim;
|
||||
}
|
||||
# endif
|
||||
|
||||
- /* If we're skipping leading blanks, don't start counting characters
|
||||
- until after skipping past any leading blanks. */
|
||||
+ /* If we're ignoring leading blanks when computing the End
|
||||
+ of the field, don't start counting bytes until after skipping
|
||||
+ past any leading blanks. */
|
||||
if (key->skipeblanks)
|
||||
while (ptr < lim && ismbblank (ptr, &mblength))
|
||||
ptr += mblength;
|
||||
|
||||
- memset (&state, '\0', sizeof(mbstate_t));
|
||||
+ memset (&state, '\0', sizeof (mbstate_t));
|
||||
|
||||
/* Advance PTR by ECHAR (if possible), but no further than LIM. */
|
||||
for (i = 0; i < echar; i++)
|
||||
@@ -1803,9 +1793,9 @@ limfield_mb (const struct line *line, co
|
||||
GET_BYTELEN_OF_CHAR (lim, ptr, mblength, state);
|
||||
|
||||
if (ptr + mblength > lim)
|
||||
- break;
|
||||
+ break;
|
||||
else
|
||||
- ptr += mblength;
|
||||
+ ptr += mblength;
|
||||
}
|
||||
|
||||
return ptr;
|
@ -1,13 +0,0 @@
|
||||
Index: src/sort.c
|
||||
===================================================================
|
||||
--- src/sort.c.orig 2010-05-04 17:28:43.820359291 +0200
|
||||
+++ src/sort.c 2010-05-04 17:30:44.507859357 +0200
|
||||
@@ -1285,7 +1285,7 @@ inittables_mb (void)
|
||||
else
|
||||
{
|
||||
j += mblength;
|
||||
- mblength = wcrtomb (mbc, wc, &state_wc);
|
||||
+ mblength = wcrtomb (mbc, pwc, &state_wc);
|
||||
assert (mblength != (size_t) 0 && mblength != (size_t) -1);
|
||||
}
|
||||
|
@ -1,16 +0,0 @@
|
||||
Index: src/sort.c
|
||||
===================================================================
|
||||
--- src/sort.c.orig 2010-05-04 17:29:12.395359111 +0200
|
||||
+++ src/sort.c 2010-05-04 17:29:59.979859336 +0200
|
||||
@@ -2494,7 +2494,10 @@ keycompare_mb (const struct line *a, con
|
||||
size_t lenb = limb <= textb ? 0 : limb - textb;
|
||||
|
||||
/* Actually compare the fields. */
|
||||
- if (key->numeric | key->general_numeric)
|
||||
+
|
||||
+ if (key->random)
|
||||
+ diff = compare_random (texta, lena, textb, lenb);
|
||||
+ else if (key->numeric | key->general_numeric)
|
||||
{
|
||||
char savea = *lima, saveb = *limb;
|
||||
|
@ -1,29 +0,0 @@
|
||||
Index: src/cut.c
|
||||
===================================================================
|
||||
--- src/cut.c.orig 2010-05-04 17:27:29.879859350 +0200
|
||||
+++ src/cut.c 2010-05-04 17:27:30.131859395 +0200
|
||||
@@ -878,7 +878,10 @@ cut_fields_mb (FILE *stream)
|
||||
c = getc (stream);
|
||||
empty_input = (c == EOF);
|
||||
if (c != EOF)
|
||||
- ungetc (c, stream);
|
||||
+ {
|
||||
+ ungetc (c, stream);
|
||||
+ wc = 0;
|
||||
+ }
|
||||
else
|
||||
wc = WEOF;
|
||||
|
||||
Index: src/expand.c
|
||||
===================================================================
|
||||
--- src/expand.c.orig 2010-05-04 17:27:29.915859239 +0200
|
||||
+++ src/expand.c 2010-05-04 17:27:30.155859324 +0200
|
||||
@@ -404,7 +404,7 @@ expand_multibyte (void)
|
||||
for (;;)
|
||||
{
|
||||
/* Input character, or EOF. */
|
||||
- wint_t wc;
|
||||
+ wint_t wc = 0;
|
||||
|
||||
/* If true, perform translations. */
|
||||
bool convert = true;
|
@ -1,49 +0,0 @@
|
||||
While uid_t and gid_t are both unsigned, the values (uid_t) -1 and
|
||||
(gid_t) -1 are reserved. A uid or gid argument of -1 to the chown(2)
|
||||
system call means to leave the uid/gid unchanged. Catch this case
|
||||
so that trying to set a uid or gid to -1 will result in an error.
|
||||
|
||||
Test cases:
|
||||
|
||||
chown 4294967295 file
|
||||
chown :4294967295 file
|
||||
chgrp 4294967295 file
|
||||
|
||||
Andreas Gruenbacher <agruen@suse.de>
|
||||
|
||||
Index: lib/userspec.c
|
||||
===================================================================
|
||||
--- lib/userspec.c.orig 2010-05-04 17:27:48.479359439 +0200
|
||||
+++ lib/userspec.c 2010-05-04 17:29:12.439359267 +0200
|
||||
@@ -169,7 +169,7 @@ parse_with_separator (char const *spec,
|
||||
{
|
||||
unsigned long int tmp;
|
||||
if (xstrtoul (u, NULL, 10, &tmp, "") == LONGINT_OK
|
||||
- && tmp <= MAXUID)
|
||||
+ && tmp <= MAXUID && tmp != (uid_t) -1)
|
||||
unum = tmp;
|
||||
else
|
||||
error_msg = E_invalid_user;
|
||||
@@ -200,7 +200,8 @@ parse_with_separator (char const *spec,
|
||||
if (grp == NULL)
|
||||
{
|
||||
unsigned long int tmp;
|
||||
- if (xstrtoul (g, NULL, 10, &tmp, "") == LONGINT_OK && tmp <= MAXGID)
|
||||
+ if (xstrtoul (g, NULL, 10, &tmp, "") == LONGINT_OK && tmp <= MAXGID
|
||||
+ && tmp != (gid_t) -1)
|
||||
gnum = tmp;
|
||||
else
|
||||
error_msg = E_invalid_group;
|
||||
Index: src/chgrp.c
|
||||
===================================================================
|
||||
--- src/chgrp.c.orig 2010-05-04 17:27:48.479359439 +0200
|
||||
+++ src/chgrp.c 2010-05-04 17:29:12.443359269 +0200
|
||||
@@ -89,7 +89,7 @@ parse_group (const char *name)
|
||||
{
|
||||
unsigned long int tmp;
|
||||
if (! (xstrtoul (name, NULL, 10, &tmp, "") == LONGINT_OK
|
||||
- && tmp <= GID_T_MAX))
|
||||
+ && tmp <= GID_T_MAX && tmp != (gid_t) -1))
|
||||
error (EXIT_FAILURE, 0, _("invalid group: %s"), quote (name));
|
||||
gid = tmp;
|
||||
}
|
Loading…
Reference in New Issue
Block a user