Compare commits

..

3 commits

Author SHA1 Message Date
Karel Zak
fa2d6a7fff 2.23.2-6: CVE-2014-9114 2014-11-27 15:09:04 +01:00
Karel Zak
518942f76e 2.23.2-5: #1009345,#1024424 2014-01-13 12:21:12 +01:00
Karel Zak
8209dad69b 2.23.2-4: don't use RHEL bugs in spec file
Signed-off-by: Karel Zak <kzak@redhat.com>
2013-09-10 11:26:08 +02:00
31 changed files with 3245 additions and 3196 deletions

View file

@ -1 +0,0 @@
1

79
.gitignore vendored
View file

@ -27,82 +27,3 @@
/util-linux-2.23.tar.xz
/util-linux-2.23.1.tar.xz
/util-linux-2.23.2.tar.xz
/util-linux-2.24-rc1.tar.xz
/util-linux-2.24.tar.xz
/util-linux-2.24.1.tar.xz
/util-linux-2.24.2.tar.xz
/util-linux-2.25-rc1.tar.xz
/util-linux-2.25-rc2.tar.xz
/util-linux-2.25.tar.xz
/util-linux-2.25.1-rc1.tar.xz
/util-linux-2.25.1.tar.xz
/util-linux-2.25.2.tar.xz
/util-linux-2.26-rc1.tar.xz
/util-linux-2.26-rc2.tar.xz
/util-linux-2.26.tar.xz
/util-linux-2.26.2.tar.xz
/util-linux-2.27-rc1.tar.xz
/util-linux-2.27-rc2.tar.xz
/util-linux-2.27.tar.xz
/util-linux-2.27.1.tar.xz
/util-linux-2.28-rc1.tar.xz
/util-linux-2.28-rc2.tar.xz
/util-linux-2.28.tar.xz
/util-linux-2.28.1.tar.xz
/util-linux-2.28.2.tar.xz
/util-linux-2.29-rc1.tar.xz
/util-linux-2.29-rc2.tar.xz
/util-linux-2.29.tar.xz
/util-linux-2.29.1.tar.xz
/util-linux-2.29.2.tar.xz
/util-linux-2.30-rc1.tar.xz
/util-linux-2.30.tar.xz
/util-linux-2.30.1.tar.xz
/util-linux-2.30.2.tar.xz
/util-linux-2.31-rc1.tar.xz
/util-linux-2.31-rc2.tar.xz
/util-linux-2.31.tar.xz
/util-linux-2.32-rc1.tar.xz
/util-linux-2.32.tar.xz
/util-linux-2.32.1.tar.xz
/util-linux-2.33-rc2.tar.xz
/util-linux-2.33.1.tar.xz
/util-linux-2.33.2.tar.xz
/util-linux-2.34-rc1.tar.xz
/util-linux-2.34-rc2.tar.xz
/util-linux-2.34.tar.xz
/util-linux-2.35-rc1.tar.xz
/util-linux-2.35-rc1-20-63f8.tar.xz
/util-linux-2.35-rc2.tar.xz
/util-linux-2.35.tar.xz
/util-linux-2.35.1.tar.xz
/util-linux-2.35.2.tar.xz
/util-linux-2.36.tar.xz
/util-linux-2.36.1.tar.xz
/util-linux-2.36.2.tar.xz
/util-linux-2.37-rc2.tar.xz
/util-linux-2.37.tar.xz
/util-linux-2.37.2.tar.xz
/util-linux-2.38-rc1.tar.xz
/util-linux-2.38-rc3.tar.xz
/util-linux-2.38.tar.xz
/util-linux-2.38.1.tar.xz
/util-linux-2.39-rc1.tar.xz
/util-linux-2.39-rc2.tar.xz
/util-linux-2.39-rc3.tar.xz
/util-linux-2.39.tar.xz
/util-linux-2.39.1.tar.xz
/util-linux-2.39.2.tar.xz
/util-linux-2.39.3.tar.xz
/util-linux-2.40-rc1.tar.xz
/util-linux-2.40.tar.xz
/util-linux-2.40.1.tar.xz
/util-linux-2.40.2.tar.xz
/util-linux-2.40.4.tar.xz
/util-linux-2.41.tar.xz
/util-linux-2.41.1.tar.xz
/util-linux-2.41.2.tar.xz
/util-linux-2.41.3.tar.xz
/util-linux-2.42.tar.xz
/util-linux-2.42.1.tar.xz
/util-linux-2.42.2.tar.xz

View file

@ -1,27 +0,0 @@
From a2357184ff3dc3beb001fcb12e1e4c0dcf8d0dbd Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Tue, 2 Dec 2025 16:15:44 +0100
Subject: login: use O_CREAT on lastlog
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=151635
Signed-off-by: Karel Zak <kzak@redhat.com>
---
login-utils/login.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/login-utils/login.c b/login-utils/login.c
index 321f9d6ce..edc69fd9a 100644
--- a/login-utils/login.c
+++ b/login-utils/login.c
@@ -682,7 +682,7 @@ static void log_lastlog(struct login_context *cxt)
sa.sa_handler = SIG_IGN;
sigaction(SIGXFSZ, &sa, &oldsa_xfsz);
- fd = open(_PATH_LASTLOG, O_RDWR, 0);
+ fd = open(_PATH_LASTLOG, O_RDWR | O_CREAT, 0);
if (fd < 0)
goto done;
offset = cxt->pwd->pw_uid * sizeof(ll);
--
2.51.1

View file

@ -1,27 +0,0 @@
From 617a887a6ec7e433f6a9f4c60592ed38b12b9f18 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Tue, 2 Dec 2025 16:17:55 +0100
Subject: login: add /run/motd.d` to the hardcoded MOTD_FILE
Addresses: https://github.com/coreos/console-login-helper-messages/issues/60
Signed-off-by: Karel Zak <kzak@redhat.com>
---
include/pathnames.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/pathnames.h b/include/pathnames.h
index 34ba11ca3..c91a077e1 100644
--- a/include/pathnames.h
+++ b/include/pathnames.h
@@ -41,7 +41,7 @@
#ifndef _PATH_MAILDIR
# define _PATH_MAILDIR "/var/spool/mail"
#endif
-#define _PATH_MOTDFILE "/usr/share/misc/motd:/run/motd:/etc/motd"
+#define _PATH_MOTDFILE "/usr/share/misc/motd:/run/motd:/run/motd.d:/etc/motd:/etc/motd.d"
#ifndef _PATH_NOLOGIN
# define _PATH_NOLOGIN "/etc/nologin"
#endif
--
2.51.1

View file

@ -0,0 +1,11 @@
diff -up util-linux-2.23.2/login-utils/login.c.kzak util-linux-2.23.2/login-utils/login.c
--- util-linux-2.23.2/login-utils/login.c.kzak 2013-07-30 10:39:26.222738397 +0200
+++ util-linux-2.23.2/login-utils/login.c 2013-09-09 09:01:39.923225757 +0200
@@ -502,7 +502,7 @@ static void log_lastlog(struct login_con
if (!cxt->pwd)
return;
- fd = open(_PATH_LASTLOG, O_RDWR, 0);
+ fd = open(_PATH_LASTLOG, O_RDWR | O_CREAT, 0);
if (fd < 0)
return;

149
2.24-agetty-clocal.patch Normal file
View file

@ -0,0 +1,149 @@
diff -up util-linux-2.23.2/term-utils/agetty.c.kzak util-linux-2.23.2/term-utils/agetty.c
--- util-linux-2.23.2/term-utils/agetty.c.kzak 2013-07-30 11:14:18.124912322 +0200
+++ util-linux-2.23.2/term-utils/agetty.c 2013-09-09 09:07:46.406689270 +0200
@@ -132,13 +132,20 @@ struct options {
int delay; /* Sleep seconds before prompt */
int nice; /* Run login with this priority */
int numspeed; /* number of baud rates to try */
+ int clocal; /* CLOCAL_MODE_* */
speed_t speeds[MAX_SPEED]; /* baud rates to be tried */
};
+enum {
+ CLOCAL_MODE_AUTO = 0,
+ CLOCAL_MODE_ALWAYS,
+ CLOCAL_MODE_NEVER
+};
+
#define F_PARSE (1<<0) /* process modem status messages */
#define F_ISSUE (1<<1) /* display /etc/issue */
#define F_RTSCTS (1<<2) /* enable RTS/CTS flow control */
-#define F_LOCAL (1<<3) /* force local */
+
#define F_INITSTRING (1<<4) /* initstring is set */
#define F_WAITCRLF (1<<5) /* wait for CR or LF */
#define F_CUSTISSUE (1<<6) /* give alternative issue file */
@@ -235,10 +242,13 @@ static void login_options_to_argv(char *
static char *fakehost;
#ifdef DEBUGGING
-#define debug(s) do { fprintf(dbf,s); fflush(dbf); } while (0)
+# ifndef DEBUG_OUTPUT
+# define DEBUG_OUTPUT "/dev/ttyp0"
+# endif
+# define debug(s) do { fprintf(dbf,s); fflush(dbf); } while (0)
FILE *dbf;
#else
-#define debug(s) do { ; } while (0)
+# define debug(s) do { ; } while (0)
#endif
int main(int argc, char **argv)
@@ -270,7 +280,7 @@ int main(int argc, char **argv)
sigaction(SIGINT, &sa, &sa_int);
#ifdef DEBUGGING
- dbf = fopen("/dev/ttyp0", "w");
+ dbf = fopen(DEBUG_OUTPUT, "w");
for (int i = 1; i < argc; i++)
debug(argv[i]);
#endif /* DEBUGGING */
@@ -311,8 +321,10 @@ int main(int argc, char **argv)
strlen(options.initstring));
}
- if (!serial_tty_option(&options, F_LOCAL))
- /* Go to blocking write mode unless -L is specified. */
+ if (options.flags & F_VCONSOLE || options.clocal != CLOCAL_MODE_ALWAYS)
+ /* Go to blocking mode unless -L is specified, this change
+ * affects stdout, stdin and stderr as all the file descriptors
+ * are created by dup(). */
fcntl(STDOUT_FILENO, F_SETFL,
fcntl(STDOUT_FILENO, F_GETFL, 0) & ~O_NONBLOCK);
@@ -420,6 +432,12 @@ int main(int argc, char **argv)
options.tty);
}
+#ifdef DEBUGGING
+ fprintf(dbf, "read %c\n", ch);
+ if (close_stream(dbf) != 0)
+ log_err("write failed: %s", DEBUG_OUTPUT);
+#endif
+
/* Let the login program take care of password validation. */
execv(options.login, login_argv);
log_err(_("%s: can't exec %s: %m"), options.tty, login_argv[0]);
@@ -534,7 +552,7 @@ static void parse_args(int argc, char **
{ "init-string", required_argument, 0, 'I' },
{ "noclear", no_argument, 0, 'J' },
{ "login-program", required_argument, 0, 'l' },
- { "local-line", no_argument, 0, 'L' },
+ { "local-line", optional_argument, 0, 'L' },
{ "extract-baud", no_argument, 0, 'm' },
{ "skip-login", no_argument, 0, 'n' },
{ "nonewline", no_argument, 0, 'N' },
@@ -603,7 +621,18 @@ static void parse_args(int argc, char **
op->login = optarg;
break;
case 'L':
- op->flags |= F_LOCAL;
+ /* -L and -L=always have the same meaning */
+ op->clocal = CLOCAL_MODE_ALWAYS;
+ if (optarg) {
+ if (strcmp(optarg, "=always") == 0)
+ op->clocal = CLOCAL_MODE_ALWAYS;
+ else if (strcmp(optarg, "=never") == 0)
+ op->clocal = CLOCAL_MODE_NEVER;
+ else if (strcmp(optarg, "=auto") == 0)
+ op->clocal = CLOCAL_MODE_AUTO;
+ else
+ log_err(_("unssuported --local-line mode argument"));
+ }
break;
case 'm':
op->flags |= F_PARSE;
@@ -1090,8 +1119,19 @@ static void termio_init(struct options *
cfsetispeed(tp, ispeed);
cfsetospeed(tp, ospeed);
- if (op->flags & F_LOCAL)
- tp->c_cflag |= CLOCAL;
+ /* The default is to follow setting from kernel, but it's possible
+ * to explicitly remove/add CLOCAL flag by -L[=<mode>]*/
+ switch (op->clocal) {
+ case CLOCAL_MODE_ALWAYS:
+ tp->c_cflag |= CLOCAL; /* -L or -L=always */
+ break;
+ case CLOCAL_MODE_NEVER:
+ tp->c_cflag &= ~CLOCAL; /* -L=never */
+ break;
+ case CLOCAL_MODE_AUTO: /* -L=auto */
+ break;
+ }
+
#ifdef HAVE_STRUCT_TERMIOS_C_LINE
tp->c_line = 0;
#endif
@@ -1412,9 +1452,10 @@ static char *get_logname(struct options
if (read(STDIN_FILENO, &c, 1) < 1) {
- /* Do not report trivial like EINTR/EIO errors. */
+ /* The terminal could be open with O_NONBLOCK when
+ * -L (force CLOCAL) is specified... */
if (errno == EINTR || errno == EAGAIN) {
- usleep(1000);
+ usleep(250000);
continue;
}
switch (errno) {
@@ -1648,7 +1689,7 @@ static void __attribute__ ((__noreturn__
fputs(_(" -i, --noissue do not display issue file\n"), out);
fputs(_(" -I, --init-string <string> set init string\n"), out);
fputs(_(" -l, --login-program <file> specify login program\n"), out);
- fputs(_(" -L, --local-line force local line\n"), out);
+ fputs(_(" -L, --local-line[=<mode>] cotrol local line flag\n"), out);
fputs(_(" -m, --extract-baud extract baud rate during connect\n"), out);
fputs(_(" -n, --skip-login do not prompt for login\n"), out);
fputs(_(" -o, --login-options <opts> options that are passed to login\n"), out);

View file

@ -0,0 +1,508 @@
diff -up util-linux-2.23.2/bash-completion/blkid.kzak util-linux-2.23.2/bash-completion/blkid
--- util-linux-2.23.2/bash-completion/blkid.kzak 2013-06-13 09:46:10.338649921 +0200
+++ util-linux-2.23.2/bash-completion/blkid 2014-01-13 12:15:46.542060064 +0100
@@ -6,6 +6,7 @@ _blkid_module()
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-c')
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/colcrt.kzak util-linux-2.23.2/bash-completion/colcrt
--- util-linux-2.23.2/bash-completion/colcrt.kzak 2013-06-13 09:46:10.342649955 +0200
+++ util-linux-2.23.2/bash-completion/colcrt 2014-01-13 12:15:46.545060095 +0100
@@ -19,6 +19,7 @@ _colcrt_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/column.kzak util-linux-2.23.2/bash-completion/column
--- util-linux-2.23.2/bash-completion/column.kzak 2013-06-13 09:46:10.343649963 +0200
+++ util-linux-2.23.2/bash-completion/column 2014-01-13 12:15:46.545060095 +0100
@@ -30,6 +30,7 @@ _column_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/cytune.kzak util-linux-2.23.2/bash-completion/cytune
--- util-linux-2.23.2/bash-completion/cytune.kzak 2013-06-13 09:46:10.344649972 +0200
+++ util-linux-2.23.2/bash-completion/cytune 2014-01-13 12:15:46.545060095 +0100
@@ -33,6 +33,7 @@ _cytune_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- ${cur:-"/dev/tty"}) )
return 0
diff -up util-linux-2.23.2/bash-completion/dmesg.kzak util-linux-2.23.2/bash-completion/dmesg
--- util-linux-2.23.2/bash-completion/dmesg.kzak 2013-06-13 09:46:10.345649980 +0200
+++ util-linux-2.23.2/bash-completion/dmesg 2014-01-13 12:15:46.545060095 +0100
@@ -6,6 +6,7 @@ _dmesg_module()
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-F'|'--file')
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/fallocate.kzak util-linux-2.23.2/bash-completion/fallocate
--- util-linux-2.23.2/bash-completion/fallocate.kzak 2013-06-13 09:46:10.345649980 +0200
+++ util-linux-2.23.2/bash-completion/fallocate 2014-01-13 12:15:46.545060095 +0100
@@ -20,6 +20,7 @@ _fallocate_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/findmnt.kzak util-linux-2.23.2/bash-completion/findmnt
--- util-linux-2.23.2/bash-completion/findmnt.kzak 2013-06-13 09:46:10.347649997 +0200
+++ util-linux-2.23.2/bash-completion/findmnt 2014-01-13 12:15:46.545060095 +0100
@@ -18,6 +18,7 @@ _findmnt_module()
return 0
;;
'-F'|'--tab-file')
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/flock.kzak util-linux-2.23.2/bash-completion/flock
--- util-linux-2.23.2/bash-completion/flock.kzak 2013-06-13 09:46:10.347649997 +0200
+++ util-linux-2.23.2/bash-completion/flock 2014-01-13 12:15:46.545060095 +0100
@@ -38,6 +38,7 @@ _flock_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- ${cur:-"/"}) )
return 0
diff -up util-linux-2.23.2/bash-completion/fsck.cramfs.kzak util-linux-2.23.2/bash-completion/fsck.cramfs
--- util-linux-2.23.2/bash-completion/fsck.cramfs.kzak 2013-06-13 09:46:10.349650015 +0200
+++ util-linux-2.23.2/bash-completion/fsck.cramfs 2014-01-13 12:15:46.545060095 +0100
@@ -6,6 +6,7 @@ _fsck.cramfs_module()
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-x'|'--destination')
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -o dirnames -- ${cur:-"/"}) )
return 0
diff -up util-linux-2.23.2/bash-completion/hexdump.kzak util-linux-2.23.2/bash-completion/hexdump
--- util-linux-2.23.2/bash-completion/hexdump.kzak 2013-07-30 10:39:26.186738042 +0200
+++ util-linux-2.23.2/bash-completion/hexdump 2014-01-13 12:15:46.546060105 +0100
@@ -28,6 +28,7 @@ _hexdump_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/hwclock.kzak util-linux-2.23.2/bash-completion/hwclock
--- util-linux-2.23.2/bash-completion/hwclock.kzak 2013-06-13 09:46:10.351650032 +0200
+++ util-linux-2.23.2/bash-completion/hwclock 2014-01-13 12:15:46.546060105 +0100
@@ -6,6 +6,7 @@ _hwclock_module()
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-f'|'--rtc'|'--adjfile')
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/ionice.kzak util-linux-2.23.2/bash-completion/ionice
--- util-linux-2.23.2/bash-completion/ionice.kzak 2013-06-13 09:46:10.352650040 +0200
+++ util-linux-2.23.2/bash-completion/ionice 2014-01-13 12:15:46.546060105 +0100
@@ -30,6 +30,7 @@ _ionice_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/last.kzak util-linux-2.23.2/bash-completion/last
--- util-linux-2.23.2/bash-completion/last.kzak 2013-06-13 09:46:10.353650049 +0200
+++ util-linux-2.23.2/bash-completion/last 2014-01-13 12:15:46.546060105 +0100
@@ -6,6 +6,7 @@ _last_module()
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-f')
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/ldattach.kzak util-linux-2.23.2/bash-completion/ldattach
--- util-linux-2.23.2/bash-completion/ldattach.kzak 2013-06-13 09:46:10.355650066 +0200
+++ util-linux-2.23.2/bash-completion/ldattach 2014-01-13 12:15:46.546060105 +0100
@@ -42,6 +42,7 @@ _ldattach_module()
return 0
;;
/*)
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/logger.kzak util-linux-2.23.2/bash-completion/logger
--- util-linux-2.23.2/bash-completion/logger.kzak 2013-06-13 09:46:10.355650066 +0200
+++ util-linux-2.23.2/bash-completion/logger 2014-01-13 12:15:46.546060105 +0100
@@ -6,6 +6,7 @@ _logger_module()
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-f'|'--file')
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/look.kzak util-linux-2.23.2/bash-completion/look
--- util-linux-2.23.2/bash-completion/look.kzak 2013-06-13 09:46:10.355650066 +0200
+++ util-linux-2.23.2/bash-completion/look 2014-01-13 12:15:46.546060105 +0100
@@ -20,6 +20,7 @@ _look_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/losetup.kzak util-linux-2.23.2/bash-completion/losetup
--- util-linux-2.23.2/bash-completion/losetup.kzak 2013-06-13 09:46:10.356650074 +0200
+++ util-linux-2.23.2/bash-completion/losetup 2014-01-13 12:15:46.546060105 +0100
@@ -60,6 +60,7 @@ _losetup_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/lscpu.kzak util-linux-2.23.2/bash-completion/lscpu
--- util-linux-2.23.2/bash-completion/lscpu.kzak 2013-07-30 10:39:26.187738051 +0200
+++ util-linux-2.23.2/bash-completion/lscpu 2014-01-13 12:15:46.546060105 +0100
@@ -41,6 +41,7 @@ _lscpu_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/lslocks.kzak util-linux-2.23.2/bash-completion/lslocks
--- util-linux-2.23.2/bash-completion/lslocks.kzak 2013-06-13 09:46:10.357650083 +0200
+++ util-linux-2.23.2/bash-completion/lslocks 2014-01-13 12:15:46.546060105 +0100
@@ -38,6 +38,7 @@ _lslocks_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/mcookie.kzak util-linux-2.23.2/bash-completion/mcookie
--- util-linux-2.23.2/bash-completion/mcookie.kzak 2013-06-13 09:46:10.357650083 +0200
+++ util-linux-2.23.2/bash-completion/mcookie 2014-01-13 12:15:46.546060105 +0100
@@ -6,6 +6,7 @@ _mcookie_module()
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-f'|'--file')
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/mkfs.cramfs.kzak util-linux-2.23.2/bash-completion/mkfs.cramfs
--- util-linux-2.23.2/bash-completion/mkfs.cramfs.kzak 2013-06-13 09:46:10.358650092 +0200
+++ util-linux-2.23.2/bash-completion/mkfs.cramfs 2014-01-13 12:15:46.546060105 +0100
@@ -36,6 +36,7 @@ _mkfs.cramfs_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/mkswap.kzak util-linux-2.23.2/bash-completion/mkswap
--- util-linux-2.23.2/bash-completion/mkswap.kzak 2013-06-13 09:46:10.359650100 +0200
+++ util-linux-2.23.2/bash-completion/mkswap 2014-01-13 12:15:46.546060105 +0100
@@ -28,6 +28,7 @@ _mkswap_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/more.kzak util-linux-2.23.2/bash-completion/more
--- util-linux-2.23.2/bash-completion/more.kzak 2013-06-13 09:46:10.360650109 +0200
+++ util-linux-2.23.2/bash-completion/more 2014-01-13 12:15:46.546060105 +0100
@@ -21,6 +21,8 @@ _more_module()
return 0
;;
esac
+
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/mountpoint.kzak util-linux-2.23.2/bash-completion/mountpoint
--- util-linux-2.23.2/bash-completion/mountpoint.kzak 2013-06-13 09:46:10.360650109 +0200
+++ util-linux-2.23.2/bash-completion/mountpoint 2014-01-13 12:15:53.664132964 +0100
@@ -20,6 +20,7 @@ _mountpoint_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- ${cur:-"/"}) )
return 0
diff -up util-linux-2.23.2/bash-completion/namei.kzak util-linux-2.23.2/bash-completion/namei
--- util-linux-2.23.2/bash-completion/namei.kzak 2013-06-13 09:46:10.360650109 +0200
+++ util-linux-2.23.2/bash-completion/namei 2014-01-13 12:15:53.664132964 +0100
@@ -16,6 +16,7 @@ _namei_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/nsenter.kzak util-linux-2.23.2/bash-completion/nsenter
--- util-linux-2.23.2/bash-completion/nsenter.kzak 2013-06-13 09:46:10.361650117 +0200
+++ util-linux-2.23.2/bash-completion/nsenter 2014-01-13 12:15:53.664132964 +0100
@@ -40,6 +40,7 @@ _nsenter_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/pg.kzak util-linux-2.23.2/bash-completion/pg
--- util-linux-2.23.2/bash-completion/pg.kzak 2013-06-13 09:46:10.362650126 +0200
+++ util-linux-2.23.2/bash-completion/pg 2014-01-13 12:15:53.664132964 +0100
@@ -25,6 +25,7 @@ _pg_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/pivot_root.kzak util-linux-2.23.2/bash-completion/pivot_root
--- util-linux-2.23.2/bash-completion/pivot_root.kzak 2013-06-13 09:46:10.362650126 +0200
+++ util-linux-2.23.2/bash-completion/pivot_root 2014-01-13 12:15:53.664132964 +0100
@@ -11,6 +11,7 @@ _pivot_root_module()
esac
case $COMP_CWORD in
1|2)
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -o dirnames -- ${cur:-"/"}) )
;;
diff -up util-linux-2.23.2/bash-completion/readprofile.kzak util-linux-2.23.2/bash-completion/readprofile
--- util-linux-2.23.2/bash-completion/readprofile.kzak 2013-06-13 09:46:10.363650134 +0200
+++ util-linux-2.23.2/bash-completion/readprofile 2014-01-13 12:15:53.664132964 +0100
@@ -6,6 +6,7 @@ _readprofile_module()
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-m'|'--mapfile'|'-p'|'--profile')
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/rename.kzak util-linux-2.23.2/bash-completion/rename
--- util-linux-2.23.2/bash-completion/rename.kzak 2013-06-13 09:46:10.364650143 +0200
+++ util-linux-2.23.2/bash-completion/rename 2014-01-13 12:15:53.664132964 +0100
@@ -24,6 +24,7 @@ _rename_module()
COMPREPLY=( $(compgen -W "replacement" -- $cur) )
;;
*)
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
;;
diff -up util-linux-2.23.2/bash-completion/rev.kzak util-linux-2.23.2/bash-completion/rev
--- util-linux-2.23.2/bash-completion/rev.kzak 2013-06-13 09:46:10.365650151 +0200
+++ util-linux-2.23.2/bash-completion/rev 2014-01-13 12:15:53.665132974 +0100
@@ -16,6 +16,7 @@ _rev_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/script.kzak util-linux-2.23.2/bash-completion/script
--- util-linux-2.23.2/bash-completion/script.kzak 2013-06-13 09:46:10.365650151 +0200
+++ util-linux-2.23.2/bash-completion/script 2014-01-13 12:15:53.665132974 +0100
@@ -32,6 +32,7 @@ _script_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/scriptreplay.kzak util-linux-2.23.2/bash-completion/scriptreplay
--- util-linux-2.23.2/bash-completion/scriptreplay.kzak 2013-06-13 09:46:10.366650160 +0200
+++ util-linux-2.23.2/bash-completion/scriptreplay 2014-01-13 12:15:53.665132974 +0100
@@ -24,6 +24,7 @@ _scriptreplay_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/setterm.kzak util-linux-2.23.2/bash-completion/setterm
--- util-linux-2.23.2/bash-completion/setterm.kzak 2013-06-13 09:46:10.367650169 +0200
+++ util-linux-2.23.2/bash-completion/setterm 2014-01-13 12:15:53.665132974 +0100
@@ -45,6 +45,7 @@ _setterm_module()
return 0
;;
'-file')
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/sfdisk.kzak util-linux-2.23.2/bash-completion/sfdisk
--- util-linux-2.23.2/bash-completion/sfdisk.kzak 2013-06-13 09:46:10.367650169 +0200
+++ util-linux-2.23.2/bash-completion/sfdisk 2014-01-13 12:15:53.665132974 +0100
@@ -14,6 +14,7 @@ _sfdisk_module()
return 0
;;
'-O'|'-I')
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/su.kzak util-linux-2.23.2/bash-completion/su
--- util-linux-2.23.2/bash-completion/su.kzak 2013-06-13 09:46:10.368650177 +0200
+++ util-linux-2.23.2/bash-completion/su 2014-01-13 12:15:53.665132974 +0100
@@ -38,6 +38,7 @@ _su_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/swaplabel.kzak util-linux-2.23.2/bash-completion/swaplabel
--- util-linux-2.23.2/bash-completion/swaplabel.kzak 2013-06-13 09:46:10.368650177 +0200
+++ util-linux-2.23.2/bash-completion/swaplabel 2014-01-13 12:15:53.665132974 +0100
@@ -24,6 +24,7 @@ _swaplabel_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/tailf.kzak util-linux-2.23.2/bash-completion/tailf
--- util-linux-2.23.2/bash-completion/tailf.kzak 2013-06-13 09:46:10.369650186 +0200
+++ util-linux-2.23.2/bash-completion/tailf 2014-01-13 12:15:53.665132974 +0100
@@ -20,6 +20,7 @@ _tailf_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/tunelp.kzak util-linux-2.23.2/bash-completion/tunelp
--- util-linux-2.23.2/bash-completion/tunelp.kzak 2013-06-13 09:46:10.370650194 +0200
+++ util-linux-2.23.2/bash-completion/tunelp 2014-01-13 12:15:53.665132974 +0100
@@ -44,6 +44,7 @@ _tunelp_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- ${cur:-"/dev/lp"}) )
return 0
diff -up util-linux-2.23.2/bash-completion/ul.kzak util-linux-2.23.2/bash-completion/ul
--- util-linux-2.23.2/bash-completion/ul.kzak 2013-06-13 09:46:10.370650194 +0200
+++ util-linux-2.23.2/bash-completion/ul 2014-01-13 12:15:53.665132974 +0100
@@ -25,6 +25,7 @@ _ul_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/utmpdump.kzak util-linux-2.23.2/bash-completion/utmpdump
--- util-linux-2.23.2/bash-completion/utmpdump.kzak 2013-07-30 10:39:26.187738051 +0200
+++ util-linux-2.23.2/bash-completion/utmpdump 2014-01-13 12:15:53.665132974 +0100
@@ -16,6 +16,7 @@ _utmpdump_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/uuidd.kzak util-linux-2.23.2/bash-completion/uuidd
--- util-linux-2.23.2/bash-completion/uuidd.kzak 2013-06-13 09:46:10.371650203 +0200
+++ util-linux-2.23.2/bash-completion/uuidd 2014-01-13 12:15:53.665132974 +0100
@@ -6,16 +6,19 @@ _uuidd_module()
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-p'|'--pid'|'-s'|'--socket')
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
;;
'-T'|'--timeout')
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -W "timeout" -- $cur) )
return 0
;;
'-n'|'--uuids')
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -W "number" -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/wall.kzak util-linux-2.23.2/bash-completion/wall
--- util-linux-2.23.2/bash-completion/wall.kzak 2013-06-13 09:46:10.371650203 +0200
+++ util-linux-2.23.2/bash-completion/wall 2014-01-13 12:15:53.666132984 +0100
@@ -20,6 +20,7 @@ _wall_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- $cur) )
return 0
diff -up util-linux-2.23.2/bash-completion/wdctl.kzak util-linux-2.23.2/bash-completion/wdctl
--- util-linux-2.23.2/bash-completion/wdctl.kzak 2013-06-13 09:46:10.372650211 +0200
+++ util-linux-2.23.2/bash-completion/wdctl 2014-01-13 12:15:53.666132984 +0100
@@ -56,6 +56,7 @@ _wdctl_module()
return 0
;;
esac
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -f -- ${cur:-"/dev/"}) )
return 0
diff -up util-linux-2.23.2/bash-completion/whereis.kzak util-linux-2.23.2/bash-completion/whereis
--- util-linux-2.23.2/bash-completion/whereis.kzak 2013-06-13 09:46:10.372650211 +0200
+++ util-linux-2.23.2/bash-completion/whereis 2014-01-13 12:15:53.666132984 +0100
@@ -6,6 +6,7 @@ _whereis_module()
prev="${COMP_WORDS[COMP_CWORD-1]}"
case $prev in
'-B'|'-M'|'-S')
+ local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $(compgen -o dirnames -- ${cur:-"/"}) )
return 0

View file

@ -0,0 +1,39 @@
From 44baaedaffee029dca76796b933412d97a19dff6 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Mon, 9 Sep 2013 10:57:50 +0200
Subject: [PATCH] libfdisk: fix SIGFPE
#0 recount_geometry at libfdisk/src/alignment.c:143
#1 fdisk_discover_geometry at libfdisk/src/alignment.c:205
#2 fdisk_context_assign_device at libfdisk/src/context.c:173
#3 print_partition_table_from_option at fdisks/fdisk.c:924
References: https://bugzilla.redhat.com/show_bug.cgi?id=1005566
Signed-off-by: Karel Zak <kzak@redhat.com>
---
libfdisk/src/alignment.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/libfdisk/src/alignment.c b/libfdisk/src/alignment.c
index ac44e73..4d4ab48 100644
--- a/libfdisk/src/alignment.c
+++ b/libfdisk/src/alignment.c
@@ -193,11 +193,12 @@ int fdisk_discover_geometry(struct fdisk_context *cxt)
/* what the kernel/bios thinks the geometry is */
blkdev_get_geometry(cxt->dev_fd, &h, &s);
- if (!h && !s) {
- /* unable to discover geometry, use default values */
- s = 63;
+
+ /* defaults */
+ if (!h)
h = 255;
- }
+ if (!s)
+ s = 63;
/* obtained heads and sectors */
cxt->geom.heads = h;
--
1.8.1.4

View file

@ -0,0 +1,39 @@
From 3f420a49dd4d0c413b635dd621aa34eebce2d3d2 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Mon, 5 Aug 2013 13:58:01 +0200
Subject: [PATCH] libmount: canonicalize for conversion from loopdev backing
file
# mount foo.img /mnt
# umount foo.img
umount: foo.img: not mounted
The loopdev code (and sysfs backing_file) uses absolute paths, but
libmount does not canonicalize the path before lookup for the backing file.
References: https://bugzilla.redhat.com/show_bug.cgi?id=950497
Signed-off-by: Karel Zak <kzak@redhat.com>
---
libmount/src/context_umount.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/libmount/src/context_umount.c b/libmount/src/context_umount.c
index 2b791c4..b02902c 100644
--- a/libmount/src/context_umount.c
+++ b/libmount/src/context_umount.c
@@ -161,7 +161,12 @@ try_loopdev:
struct stat st;
if (stat(tgt, &st) == 0 && S_ISREG(st.st_mode)) {
- int count = loopdev_count_by_backing_file(tgt, &loopdev);
+ int count;
+
+ cn_tgt = mnt_resolve_path(tgt, cache);
+ count = loopdev_count_by_backing_file(cn_tgt, &loopdev);
+ if (!cache)
+ free(cn_tgt);
if (count == 1) {
DBG(CXT, mnt_debug_h(cxt,
"umount: %s --> %s (retry)", tgt, loopdev));
--
1.8.1.4

View file

@ -0,0 +1,15 @@
diff -up util-linux-2.23.2/fdisks/sfdisk.c.kzak util-linux-2.23.2/fdisks/sfdisk.c
--- util-linux-2.23.2/fdisks/sfdisk.c.kzak 2013-07-30 10:39:26.200738180 +0200
+++ util-linux-2.23.2/fdisks/sfdisk.c 2014-01-13 12:12:02.460808609 +0100
@@ -3201,9 +3201,9 @@ do_fdisk(char *dev) {
ignore_result( fgets(answer, sizeof(answer), stdin) );
if (answer[0] == 'q' || answer[0] == 'Q') {
errx(EXIT_FAILURE, _("Quitting - nothing changed"));
- } else if (rpmatch(answer) == 1) {
- continue;
} else if (rpmatch(answer) == 0) {
+ continue;
+ } else if (rpmatch(answer) == 1) {
break;
} else {
printf(_("Please answer one of y,n,q\n"));

View file

@ -0,0 +1,22 @@
diff -up util-linux-2.23.2/login-utils/su-common.c.kzak util-linux-2.23.2/login-utils/su-common.c
--- util-linux-2.23.2/login-utils/su-common.c.kzak 2014-01-13 12:09:43.047138185 +0100
+++ util-linux-2.23.2/login-utils/su-common.c 2014-01-13 12:10:53.084137060 +0100
@@ -161,7 +161,7 @@ log_syslog(struct passwd const *pw, bool
old_user = pwd ? pwd->pw_name : "";
}
- if (get_terminal_name(STDERR_FILENO, NULL, &tty, NULL) == 0 && tty)
+ if (get_terminal_name(STDERR_FILENO, NULL, &tty, NULL) != 0 || !tty)
tty = "none";
openlog (program_invocation_short_name, 0 , LOG_AUTH);
@@ -457,9 +457,6 @@ authenticate (const struct passwd *pw)
done:
- if (lpw && lpw->pw_name)
- pw = lpw;
-
log_syslog(pw, !is_pam_failure(retval));
if (is_pam_failure(retval))

View file

@ -0,0 +1,48 @@
diff -up util-linux-2.23.2/login-utils/su-common.c.kzak util-linux-2.23.2/login-utils/su-common.c
--- util-linux-2.23.2/login-utils/su-common.c.kzak 2013-07-30 10:39:26.223738407 +0200
+++ util-linux-2.23.2/login-utils/su-common.c 2013-09-09 09:32:05.497238691 +0200
@@ -111,6 +111,9 @@ static int same_session = 0;
/* SU_MODE_{RUNUSER,SU} */
static int su_mode;
+/* Don't print PAM info messages (Last login, etc.). */
+static int suppress_pam_info;
+
static bool _pam_session_opened;
static bool _pam_cred_established;
static sig_atomic_t volatile caught_signal = false;
@@ -208,10 +211,23 @@ static void log_btmp(struct passwd const
updwtmp(_PATH_BTMP, &ut);
}
+
+static int su_pam_conv(int num_msg, const struct pam_message **msg,
+ struct pam_response **resp, void *appdata_ptr)
+{
+ if (suppress_pam_info
+ && num_msg == 1
+ && msg
+ && msg[0]->msg_style == PAM_TEXT_INFO)
+ return PAM_SUCCESS;
+
+ return misc_conv(num_msg, msg, resp, appdata_ptr);
+}
+
static struct pam_conv conv =
{
- misc_conv,
- NULL
+ su_pam_conv,
+ NULL
};
static void
@@ -902,6 +918,9 @@ su_main (int argc, char **argv, int mode
init_groups (pw, groups, num_supp_groups);
+ if (!simulate_login || command)
+ suppress_pam_info = 1; /* don't print PAM info messages */
+
create_watching_parent ();
/* Now we're in the child. */

View file

@ -0,0 +1,37 @@
diff -up util-linux-2.23.2/tests/functions.sh.kzak util-linux-2.23.2/tests/functions.sh
--- util-linux-2.23.2/tests/functions.sh.kzak 2013-06-13 09:46:10.554651768 +0200
+++ util-linux-2.23.2/tests/functions.sh 2013-09-09 10:01:23.355469268 +0200
@@ -483,7 +483,7 @@ function ts_scsi_debug_init {
modprobe scsi_debug $*
[ "$?" == 0 ] || ts_die "Cannot init device"
- DEVNAME=$(grep scsi_debug /sys/block/*/device/model | awk -F '/' '{print $4}')
+ DEVNAME=$(grep --with-filename scsi_debug /sys/block/*/device/model | awk -F '/' '{print $4}')
[ "x${DEVNAME}" == "x" ] && ts_die "Cannot find device"
DEVICE="/dev/${DEVNAME}"
diff -up util-linux-2.23.2/tests/ts/cramfs/mkfs.kzak util-linux-2.23.2/tests/ts/cramfs/mkfs
--- util-linux-2.23.2/tests/ts/cramfs/mkfs.kzak 2013-06-13 09:46:10.557651793 +0200
+++ util-linux-2.23.2/tests/ts/cramfs/mkfs 2013-09-09 10:01:23.355469268 +0200
@@ -80,7 +80,7 @@ cd $TS_MOUNTPOINT
ts_log "list the image"
export TZ='GMT-1'
-ls -laR --time-style=long-iso . >> $TS_OUTPUT
+ls -laR --time-style=long-iso . | sed 's:\. : :g' >> $TS_OUTPUT
echo >> $TS_OUTPUT
ts_log "list checksums from new data"
diff -up util-linux-2.23.2/tests/ts/libmount/context-utab.kzak util-linux-2.23.2/tests/ts/libmount/context-utab
--- util-linux-2.23.2/tests/ts/libmount/context-utab.kzak 2013-06-13 09:46:10.561651827 +0200
+++ util-linux-2.23.2/tests/ts/libmount/context-utab 2013-09-09 10:01:23.355469268 +0200
@@ -85,7 +85,9 @@ grep -q $DEVICE $LIBMOUNT_UTAB && \
echo "umount (mountpoint) failed: found $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
ts_finalize_subtest
+
if [ -x "/sbin/mkfs.btrfs" ]; then
+ $TS_CMD_WIPEFS -a $DEVICE &> /dev/null
ts_log "Create filesystem [btrfs]"
/sbin/mkfs.btrfs -L "$LABEL" $DEVICE &> /dev/null
udevadm settle

149
2.26-libblkid-escape.patch Normal file
View file

@ -0,0 +1,149 @@
diff -up util-linux-2.23.2/libblkid/src/read.c.kzak util-linux-2.23.2/libblkid/src/read.c
--- util-linux-2.23.2/libblkid/src/read.c.kzak 2013-06-13 09:46:10.421650630 +0200
+++ util-linux-2.23.2/libblkid/src/read.c 2014-11-27 15:02:18.559969208 +0100
@@ -252,15 +252,30 @@ static int parse_token(char **name, char
*value = skip_over_blank(*value + 1);
if (**value == '"') {
- end = strchr(*value + 1, '"');
- if (!end) {
+ char *p = end = *value + 1;
+
+ /* convert 'foo\"bar' to 'foo"bar' */
+ while (*p) {
+ if (*p == '\\') {
+ p++;
+ *end = *p;
+ } else {
+ *end = *p;
+ if (*p == '"')
+ break;
+ }
+ p++;
+ end++;
+ }
+
+ if (*end != '"') {
DBG(READ, blkid_debug("unbalanced quotes at: %s", *value));
*cp = *value;
return -BLKID_ERR_CACHE;
}
(*value)++;
*end = '\0';
- end++;
+ end = ++p;
} else {
end = skip_over_word(*value);
if (*end) {
diff -up util-linux-2.23.2/libblkid/src/save.c.kzak util-linux-2.23.2/libblkid/src/save.c
--- util-linux-2.23.2/libblkid/src/save.c.kzak 2013-07-30 10:39:26.209738269 +0200
+++ util-linux-2.23.2/libblkid/src/save.c 2014-11-27 15:02:18.559969208 +0100
@@ -23,6 +23,21 @@
#endif
#include "blkidP.h"
+
+static void save_quoted(const char *data, FILE *file)
+{
+ const char *p;
+
+ fputc('"', file);
+ for (p = data; p && *p; p++) {
+ if ((unsigned char) *p == 0x22 || /* " */
+ (unsigned char) *p == 0x5c) /* \ */
+ fputc('\\', file);
+
+ fputc(*p, file);
+ }
+ fputc('"', file);
+}
static int save_dev(blkid_dev dev, FILE *file)
{
struct list_head *p;
@@ -40,9 +55,14 @@ static int save_dev(blkid_dev dev, FILE
if (dev->bid_pri)
fprintf(file, " PRI=\"%d\"", dev->bid_pri);
+
list_for_each(p, &dev->bid_tags) {
blkid_tag tag = list_entry(p, struct blkid_struct_tag, bit_tags);
- fprintf(file, " %s=\"%s\"", tag->bit_name,tag->bit_val);
+
+ fputc(' ', file); /* space between tags */
+ fputs(tag->bit_name, file); /* tag NAME */
+ fputc('=', file); /* separator between NAME and VALUE */
+ save_quoted(tag->bit_val, file); /* tag "VALUE" */
}
fprintf(file, ">%s</device>\n", dev->bid_name);
diff -up util-linux-2.23.2/lib/tt.c.kzak util-linux-2.23.2/lib/tt.c
--- util-linux-2.23.2/lib/tt.c.kzak 2013-07-15 10:25:46.280049032 +0200
+++ util-linux-2.23.2/lib/tt.c 2014-11-27 15:02:18.560969219 +0100
@@ -672,6 +672,8 @@ void tt_fputs_quoted(const char *data, F
for (p = data; p && *p; p++) {
if ((unsigned char) *p == 0x22 || /* " */
(unsigned char) *p == 0x5c || /* \ */
+ (unsigned char) *p == 0x60 || /* ` */
+ (unsigned char) *p == 0x24 || /* $ */
!isprint((unsigned char) *p) ||
iscntrl((unsigned char) *p)) {
diff -up util-linux-2.23.2/misc-utils/blkid.8.kzak util-linux-2.23.2/misc-utils/blkid.8
--- util-linux-2.23.2/misc-utils/blkid.8.kzak 2013-06-13 09:46:10.446650844 +0200
+++ util-linux-2.23.2/misc-utils/blkid.8 2014-11-27 15:02:18.560969219 +0100
@@ -193,7 +193,10 @@ partitions. This output format is \fBDE
.TP
.B export
print key=value pairs for easy import into the environment; this output format
-is automatically enabled when I/O Limits (\fB-i\fR option) are requested
+is automatically enabled when I/O Limits (\fB-i\fR option) are requested.
+
+The non-printing characters are encoded by ^ and M- notation and all
+potentially unsafe characters are escaped.
.RE
.TP
.BI \-O " offset"
diff -up util-linux-2.23.2/misc-utils/blkid.c.kzak util-linux-2.23.2/misc-utils/blkid.c
--- util-linux-2.23.2/misc-utils/blkid.c.kzak 2014-11-27 15:02:18.560969219 +0100
+++ util-linux-2.23.2/misc-utils/blkid.c 2014-11-27 15:05:34.770244516 +0100
@@ -106,8 +106,10 @@ static void usage(int error)
/*
* This function does "safe" printing. It will convert non-printable
* ASCII characters using '^' and M- notation.
+ *
+ * If 'esc' is defined then escape all chars from esc by \.
*/
-static void safe_print(const char *cp, int len)
+static void safe_print(const char *cp, int len, const char *esc)
{
unsigned char ch;
@@ -124,7 +126,9 @@ static void safe_print(const char *cp, i
if ((ch < 32) || (ch == 0x7f)) {
fputc('^', stdout);
ch ^= 0x40; /* ^@, ^A, ^B; ^? for DEL */
- }
+
+ } else if (esc && strchr(esc, ch))
+ fputc('\\', stdout);
}
fputc(ch, stdout);
}
@@ -301,7 +305,7 @@ static void print_value(int output, int
printf("DEVNAME=%s\n", devname);
fputs(name, stdout);
fputs("=", stdout);
- safe_print(value, valsz);
+ safe_print(value, valsz, " \\\"'$`<>");
fputs("\n", stdout);
} else {
@@ -309,7 +313,7 @@ static void print_value(int output, int
printf("%s: ", devname);
fputs(name, stdout);
fputs("=\"", stdout);
- safe_print(value, valsz);
+ safe_print(value, valsz, "\"\\");
fputs("\" ", stdout);
}
}

View file

@ -1,12 +0,0 @@
srpm util-linux
mcd $BUILDDIR/$1
cat <<EOF > config.cache
ax_cv_have_tls=yes
scanf_cv_alloc_modifier=ms
EOF
$SRC/${1}-*/configure $TCONFIGARGS --without-ncurses --without-tinfo \
--prefix=/usr --libexecdir=/usr/lib${SUFFIX} --libdir=/usr/lib${SUFFIX} \
--disable-wall --cache-file=config.cache --without-python --without-systemd
notparallel
make $J V=1
make $J install DESTDIR=${ROOTFS}

View file

@ -1,2 +0,0 @@
0.0 0 0.0
0

2341
changelog

File diff suppressed because it is too large Load diff

63
nologin.8 Normal file
View file

@ -0,0 +1,63 @@
.\" $OpenBSD: nologin.8,v 1.8 1999/06/04 02:45:19 aaron Exp $
.\" $NetBSD: nologin.8,v 1.3 1995/03/18 14:59:09 cgd Exp $
.\"
.\" Copyright (c) 1993
.\" The Regents of the University of California. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)nologin.8 8.1 (Berkeley) 6/19/93
.\"
.Dd February 15, 1997
.Dt NOLOGIN 8
.Os
.Sh NAME
.Nm nologin
.Nd politely refuse a login
.Sh SYNOPSIS
.Nm nologin
.Sh DESCRIPTION
.Nm
displays a message that an account is not available and
exits non-zero.
It is intended as a replacement shell field for accounts that
have been disabled.
.Pp
If the file
.Pa /etc/nologin.txt
exists,
.Nm
displays its contents to the user instead of the default message.
.Sh SEE ALSO
.Xr login 1
.Sh HISTORY
The
.Nm
command appeared in
.Bx 4.4 .

58
nologin.c Normal file
View file

@ -0,0 +1,58 @@
/* $OpenBSD: nologin.c,v 1.2 1997/04/04 16:51:37 millert Exp $ */
/*
* Copyright (c) 1997, Jason Downs. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <sys/types.h>
#include <fcntl.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
/* Distinctly different from _PATH_NOLOGIN. */
#define _PATH_NOLOGIN_TXT "/etc/nologin.txt"
#define DEFAULT_MESG "This account is currently not available.\n"
/*ARGSUSED*/
int main(argc, argv)
int argc;
char *argv[];
{
int nfd, nrd;
char nbuf[128];
nfd = open(_PATH_NOLOGIN_TXT, O_RDONLY);
if (nfd < 0) {
write(STDOUT_FILENO, DEFAULT_MESG, strlen(DEFAULT_MESG));
exit (1);
}
while ((nrd = read(nfd, nbuf, sizeof(nbuf))) > 0)
write(STDOUT_FILENO, nbuf, nrd);
close (nfd);
exit (1);
}

View file

@ -1,5 +0,0 @@
summary: Basic smoke test
discover:
how: fmf
execute:
how: tmt

View file

@ -1 +1 @@
SHA512 (util-linux-2.42.2.tar.xz) = 7415add0be2930654e322830808dde03ff6d511bd357f0679e6b6287a13ca79fe58ce4ac05edef86b76fb381b3a36ca2da9d3c31b5dc0a1d889c203156a57277
b39fde897334a4858bb2098edcce5b3f util-linux-2.23.2.tar.xz

View file

@ -1,64 +0,0 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /CoreOS/util-linux/various
# Description: This test groups small sanity and regression tests for util-linux
# Author: Miroslav Vadkerti <mvadkert@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/CoreOS/util-linux/Sanity/various
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Miroslav Vadkerti <mvadkert@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: This test groups small sanity and regression tests for util-linux" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 10m" >> $(METADATA)
@echo "RunFor: util-linux" >> $(METADATA)
@echo "Requires: util-linux util-linux-user" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Releases: -RHEL3 -RHEL4 -RHEL5Server -RHEL5Client -RHEL6" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -1,3 +0,0 @@
PURPOSE of /CoreOS/util-linux/various
Description: This test groups small sanity and regression tests for util-linux
Author: Miroslav Vadkerti <mvadkert@redhat.com>

View file

@ -1,13 +0,0 @@
summary: This test groups small sanity and regression tests for util-linux
description: ''
contact: Miroslav Vadkerti <mvadkert@redhat.com>
component:
- util-linux
test: ./runtest.sh
framework: beakerlib
recommend:
- util-linux
- util-linux-user
duration: 10m
extra-summary: /CoreOS/util-linux/Sanity/various
extra-task: /CoreOS/util-linux/Sanity/various

View file

@ -1,51 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/util-linux/various
# Description: This test groups small sanity and regression tests for util-linux
# Author: Miroslav Vadkerti <mvadkert@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="util-linux"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlPhaseEnd
rlPhaseStartTest "return code of chfn should be always 1 in case failure"
rlRun "chfn -f a:b" 1
rlRun "chfn -o a:b" 1
rlRun "chfn -p a:b" 1
rlRun "chfn -h a:b" 1
rlRun "chfn -x a:b" 1
rlRun "chfn -f a -o b -p c -h d unknown-user" 1
rlPhaseEnd
rlPhaseStartCleanup
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

8
util-linux-60-raw.rules Normal file
View file

@ -0,0 +1,8 @@
#
# Enter raw device bindings here.
#
# An example would be:
# ACTION=="add", KERNEL=="sda", RUN+="/usr/bin/raw /dev/raw/raw1 %N"
# to bind /dev/raw/raw1 to /dev/sda, or
# ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/usr/bin/raw /dev/raw/raw2 %M %m"
# to bind /dev/raw/raw2 to the device with major 8, minor 1.

View file

@ -1,4 +1,5 @@
#%PAM-1.0
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth substack system-auth
auth include postlogin
account required pam_nologin.so
@ -7,6 +8,7 @@ password include system-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
session optional pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open
session required pam_namespace.so

View file

@ -1,4 +1,5 @@
#%PAM-1.0
auth required pam_securetty.so
auth substack password-auth
auth include postlogin
account required pam_nologin.so

View file

@ -1,5 +1,4 @@
#%PAM-1.0
auth required pam_env.so
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid

File diff suppressed because it is too large Load diff

View file

@ -1 +0,0 @@
d /run/uuidd 2775 uuidd uuidd