diff options
author | Steve Langasek <vorlon@debian.org> | 2019-02-11 16:35:29 -0800 |
---|---|---|
committer | Steve Langasek <vorlon@debian.org> | 2019-02-11 22:11:36 -0800 |
commit | 8b08f06d8f4e5ec8a37301f3f1b451a8f440bc37 (patch) | |
tree | 8dab53ad4324e89ceae976bb6ff2bdc266af03a9 /debian/patches-applied/update-motd | |
parent | 6efc211a0f23f9812e013bf02a95dd8708f6592e (diff) |
Refresh patches
Diffstat (limited to 'debian/patches-applied/update-motd')
-rw-r--r-- | debian/patches-applied/update-motd | 115 |
1 files changed, 28 insertions, 87 deletions
diff --git a/debian/patches-applied/update-motd b/debian/patches-applied/update-motd index e649a2f4..3d49d682 100644 --- a/debian/patches-applied/update-motd +++ b/debian/patches-applied/update-motd @@ -10,49 +10,19 @@ Index: pam/modules/pam_motd/pam_motd.c =================================================================== --- pam.orig/modules/pam_motd/pam_motd.c +++ pam/modules/pam_motd/pam_motd.c -@@ -48,13 +48,38 @@ - - static char default_motd[] = DEFAULT_MOTD; - -+static void display_file(pam_handle_t *pamh, const char *motd_path) -+{ -+ int fd; -+ char *mtmp = NULL; -+ while ((fd = open(motd_path, O_RDONLY, 0)) >= 0) { -+ struct stat st; -+ /* fill in message buffer with contents of motd */ -+ if ((fstat(fd, &st) < 0) || !st.st_size || st.st_size > 0x10000) -+ break; -+ if (!(mtmp = malloc(st.st_size+1))) -+ break; -+ if (pam_modutil_read(fd, mtmp, st.st_size) != st.st_size) -+ break; -+ if (mtmp[st.st_size-1] == '\n') -+ mtmp[st.st_size-1] = '\0'; -+ else -+ mtmp[st.st_size] = '\0'; -+ pam_info (pamh, "%s", mtmp); -+ break; -+ } -+ _pam_drop (mtmp); -+ if (fd >= 0) -+ close(fd); -+} -+ - int pam_sm_open_session(pam_handle_t *pamh, int flags, +@@ -101,8 +101,10 @@ int argc, const char **argv) { int retval = PAM_IGNORE; -- int fd; + int do_update = 1; const char *motd_path = NULL; -- char *mtmp = NULL; + const char *motd_dir_path = NULL; + struct stat st; if (flags & PAM_SILENT) { return retval; -@@ -72,6 +97,9 @@ - "motd= specification missing argument - ignored"); +@@ -131,6 +133,9 @@ + "motd_dir= specification missing argument - ignored"); } } + else if (!strcmp(*argv,"noupdate")) { @@ -61,30 +31,10 @@ Index: pam/modules/pam_motd/pam_motd.c else pam_syslog(pamh, LOG_ERR, "unknown option: %s", *argv); } -@@ -79,34 +107,23 @@ - if (motd_path == NULL) - motd_path = default_motd; +@@ -140,6 +145,19 @@ + motd_dir_path = default_motd_dir; + } -- while ((fd = open(motd_path, O_RDONLY, 0)) >= 0) { -- struct stat st; -- -- /* fill in message buffer with contents of motd */ -- if ((fstat(fd, &st) < 0) || !st.st_size || st.st_size > 0x10000) -- break; -- -- if (!(mtmp = malloc(st.st_size+1))) -- break; -- -- if (pam_modutil_read(fd, mtmp, st.st_size) != st.st_size) -- break; -- -- if (mtmp[st.st_size-1] == '\n') -- mtmp[st.st_size-1] = '\0'; -- else -- mtmp[st.st_size] = '\0'; -- -- pam_info (pamh, "%s", mtmp); -- break; + /* Run the update-motd dynamic motd scripts, outputting to /run/motd.dynamic. + This will be displayed only when calling pam_motd with + motd=/run/motd.dynamic; current /etc/pam.d/login and /etc/pam.d/sshd @@ -92,29 +42,20 @@ Index: pam/modules/pam_motd/pam_motd.c + if (do_update && (stat("/etc/update-motd.d", &st) == 0) + && S_ISDIR(st.st_mode)) + { -+ mode_t old_mask = umask(0022); -+ if (!system("/usr/bin/env -i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin run-parts --lsbsysinit /etc/update-motd.d > /run/motd.dynamic.new")) -+ rename("/run/motd.dynamic.new", "/run/motd.dynamic"); -+ umask(old_mask); - } - -- _pam_drop (mtmp); -- -- if (fd >= 0) -- close(fd); -+ /* Display the updated motd */ -+ display_file(pamh, motd_path); - -- return retval; -+ return retval; - } ++ mode_t old_mask = umask(0022); ++ if (!system("/usr/bin/env -i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin run-parts --lsbsysinit /etc/update-motd.d > /run/motd.dynamic.new")) ++ rename("/run/motd.dynamic.new", "/run/motd.dynamic"); ++ umask(old_mask); ++ } ++ + if (motd_path != NULL) { + int fd = open(motd_path, O_RDONLY, 0); - /* end of module definition */ Index: pam/modules/pam_motd/pam_motd.8.xml =================================================================== --- pam.orig/modules/pam_motd/pam_motd.8.xml +++ pam/modules/pam_motd/pam_motd.8.xml -@@ -52,6 +52,17 @@ +@@ -63,6 +63,17 @@ </para> </listitem> </varlistentry> @@ -130,33 +71,33 @@ Index: pam/modules/pam_motd/pam_motd.8.xml + </listitem> + </varlistentry> </variablelist> - </refsect1> - + <para> + When no options are given, the default is to display both Index: pam/modules/pam_motd/pam_motd.8 =================================================================== --- pam.orig/modules/pam_motd/pam_motd.8 +++ pam/modules/pam_motd/pam_motd.8 -@@ -45,6 +45,13 @@ - /path/filename - file is displayed as message of the day\&. +@@ -53,6 +53,13 @@ + directory is scanned and each file contained inside of it is displayed\&. .RE -+.PP + .PP +\fBnoupdate\fR +.RS 4 +Don\*(Aqt run the scripts in +/etc/update\-motd\&.d +to refresh the motd file\&. +.RE - .SH "MODULE TYPES PROVIDED" - .PP - Only the ++.PP + When no options are given, the default is to display both + /etc/motd + and the contents of Index: pam/modules/pam_motd/README =================================================================== --- pam.orig/modules/pam_motd/README +++ pam/modules/pam_motd/README -@@ -14,6 +14,10 @@ - - The /path/filename file is displayed as message of the day. +@@ -23,6 +23,10 @@ + contents of /etc/motd.d. Specifying either option (or both) will disable this + default behavior. +noupdate + |