Imported Debian patch 1:4.4-1
This commit is contained in:
Vendored
+15
-17
@@ -1,23 +1,21 @@
|
||||
shadow (1:4.3-1) unstable; urgency=medium
|
||||
shadow (1:4.4-1) unstable; urgency=medium
|
||||
|
||||
[ Serge Hallyn ]
|
||||
* Merge upstream 4.3 release
|
||||
* Dropped patches:
|
||||
- debian/patches/501_commonio_group_shadow: not sure about this one,
|
||||
are the cached db->st_mode etc what we want?
|
||||
- debian/patches/1000_configure_userns - upstream
|
||||
- debian/patches/1020_fix_user_busy_errors - upstream
|
||||
- debian/patches/1010_vietnamese_translation - needs a refresh and I'm
|
||||
not qualified; left the old version but unapplied
|
||||
* debian/control:
|
||||
- replace nekral with myself in Uploaders (Closes: #832380)
|
||||
- Update VCS fields to use https
|
||||
* Add three upstream security patches (which are not in the 4.3 release)
|
||||
* Import new upstream
|
||||
* Patch changes:
|
||||
- Update 501_commonio_group_shadow to work with upstream changes
|
||||
- Update 1010_vietnamese_translation
|
||||
- Drop userns patches which are now all upstream
|
||||
|
||||
[ Niels Thykier ]
|
||||
* debian/rules: explicitly set SHELL to /bin/sh
|
||||
-- Serge Hallyn <serge.hallyn@ubuntu.com> Sun, 18 Sep 2016 22:14:43 -0500
|
||||
|
||||
-- Serge Hallyn <serge.hallyn@ubuntu.com> Fri, 05 Aug 2016 17:43:39 -0500
|
||||
shadow (1:4.2-3.2) unstable; urgency=medium
|
||||
|
||||
* Non-maintainer upload.
|
||||
* Use HTTPS in Vcs-Git.
|
||||
* Stop using hardening-wrapper and instead use /usr/share/dpkg/buildflags.mk.
|
||||
Closes: #836653
|
||||
|
||||
-- Mattia Rizzolo <mattia@debian.org> Sun, 18 Sep 2016 14:42:16 +0000
|
||||
|
||||
shadow (1:4.2-3.1) unstable; urgency=medium
|
||||
|
||||
|
||||
Vendored
+3
-4
@@ -5,10 +5,9 @@ Maintainer: Shadow package maintainers <pkg-shadow-devel@lists.alioth.debian.org
|
||||
Standards-Version: 3.9.5
|
||||
Uploaders: Christian Perrier <bubulle@debian.org>, Serge Hallyn <serge@hallyn.com>
|
||||
Build-Depends: dh-autoreconf, gettext, libpam0g-dev, debhelper (>= 6.0.7~), quilt, dpkg-dev (>= 1.13.5), xsltproc, docbook-xsl, docbook-xml, libxml2-utils, cdbs, libselinux1-dev [linux-any], libsemanage1-dev [linux-any], gnome-doc-utils (>= 0.4.3), bison, libaudit-dev [linux-any]
|
||||
,hardening-wrapper
|
||||
Vcs-Git: git://anonscm.debian.org/git/pkg-shadow/shadow.git
|
||||
Vcs-Browser: https://anonscm.debian.org/gitweb/?p=pkg-shadow/shadow.git;a=summary
|
||||
Homepage: https://pkg-shadow.alioth.debian.org/
|
||||
Vcs-Git: https://anonscm.debian.org/git/pkg-shadow/shadow.git
|
||||
Vcs-Browser: https://anonscm.debian.org/git/pkg-shadow/shadow.git
|
||||
Homepage: http://pkg-shadow.alioth.debian.org/
|
||||
|
||||
Package: passwd
|
||||
Architecture: any
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
From 7f5a14817d304c4f9ac0aff864f27d95a8cc75ca Mon Sep 17 00:00:00 2001
|
||||
From: Serge Hallyn <serge@hallyn.com>
|
||||
Date: Sun, 31 Jul 2016 12:55:44 -0500
|
||||
Subject: [PATCH 1/3] get_map_ranges: check for overflow
|
||||
|
||||
The kernel accepts u32 values, so make sure that userspace
|
||||
is not passing large values.
|
||||
|
||||
Signed-off-by: Serge Hallyn <serge@hallyn.com>
|
||||
---
|
||||
libmisc/idmapping.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/libmisc/idmapping.c b/libmisc/idmapping.c
|
||||
index 0dce634..f105a41 100644
|
||||
--- a/libmisc/idmapping.c
|
||||
+++ b/libmisc/idmapping.c
|
||||
@@ -83,6 +83,16 @@ struct map_range *get_map_ranges(int ranges, int argc, char **argv)
|
||||
free(mappings);
|
||||
return NULL;
|
||||
}
|
||||
+ if (mapping->upper > UINT_MAX ||
|
||||
+ mapping->lower > UINT_MAX ||
|
||||
+ mapping->count > UINT_MAX) {
|
||||
+ free(mappings);
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ if (mapping->lower + mapping->count < mapping->lower) {
|
||||
+ free(mapping);
|
||||
+ return NULL;
|
||||
+ }
|
||||
}
|
||||
return mappings;
|
||||
}
|
||||
--
|
||||
2.7.4
|
||||
|
||||
-46
@@ -1,46 +0,0 @@
|
||||
From 1d5a926cc2d6078d23a96222b1ef3e558724dad1 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Krahmer <krahmer@suse.com>
|
||||
Date: Wed, 3 Aug 2016 11:51:07 -0500
|
||||
Subject: [PATCH 2/3] Simplify getulong
|
||||
|
||||
Use strtoul to read an unsigned long, rather than reading
|
||||
a signed long long and casting it.
|
||||
|
||||
https://bugzilla.suse.com/show_bug.cgi?id=979282
|
||||
---
|
||||
lib/getulong.c | 9 +++------
|
||||
1 file changed, 3 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/lib/getulong.c b/lib/getulong.c
|
||||
index 61579ca..08d2c1a 100644
|
||||
--- a/lib/getulong.c
|
||||
+++ b/lib/getulong.c
|
||||
@@ -44,22 +44,19 @@
|
||||
*/
|
||||
int getulong (const char *numstr, /*@out@*/unsigned long int *result)
|
||||
{
|
||||
- long long int val;
|
||||
+ unsigned long int val;
|
||||
char *endptr;
|
||||
|
||||
errno = 0;
|
||||
- val = strtoll (numstr, &endptr, 0);
|
||||
+ val = strtoul (numstr, &endptr, 0);
|
||||
if ( ('\0' == *numstr)
|
||||
|| ('\0' != *endptr)
|
||||
|| (ERANGE == errno)
|
||||
- /*@+ignoresigns@*/
|
||||
- || (val != (unsigned long int)val)
|
||||
- /*@=ignoresigns@*/
|
||||
) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
- *result = (unsigned long int)val;
|
||||
+ *result = val;
|
||||
return 1;
|
||||
}
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
From 801935d7e54d0cc169b37fe00cad1ce84e77048b Mon Sep 17 00:00:00 2001
|
||||
From: Serge Hallyn <serge@hallyn.com>
|
||||
Date: Fri, 5 Aug 2016 17:16:48 -0500
|
||||
Subject: [PATCH 3/3] also check upper for wrap
|
||||
|
||||
---
|
||||
libmisc/idmapping.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: shadow/libmisc/idmapping.c
|
||||
===================================================================
|
||||
--- shadow.orig/libmisc/idmapping.c
|
||||
+++ shadow/libmisc/idmapping.c
|
||||
@@ -89,7 +89,8 @@ struct map_range *get_map_ranges(int ran
|
||||
free(mappings);
|
||||
return NULL;
|
||||
}
|
||||
- if (mapping->lower + mapping->count < mapping->lower) {
|
||||
+ if (mapping->lower + mapping->count < mapping->lower ||
|
||||
+ mapping->upper + mapping->count < mapping->upper) {
|
||||
free(mapping);
|
||||
return NULL;
|
||||
}
|
||||
+7
-7
@@ -4,11 +4,11 @@ Notes:
|
||||
* I'm not sure login should add an entry in the FTMP file when PAM is used.
|
||||
(but nothing in /etc/login.defs indicates that the failure is not logged)
|
||||
|
||||
Index: shadow-4.3/src/login.c
|
||||
Index: shadow-4.4/src/login.c
|
||||
===================================================================
|
||||
--- shadow-4.3.orig/src/login.c
|
||||
+++ shadow-4.3/src/login.c
|
||||
@@ -831,6 +831,24 @@ int main (int argc, char **argv)
|
||||
--- shadow-4.4.orig/src/login.c
|
||||
+++ shadow-4.4/src/login.c
|
||||
@@ -834,6 +834,24 @@ int main (int argc, char **argv)
|
||||
(void) puts ("");
|
||||
(void) puts (_("Login incorrect"));
|
||||
|
||||
@@ -33,10 +33,10 @@ Index: shadow-4.3/src/login.c
|
||||
if (failcount >= retries) {
|
||||
SYSLOG ((LOG_NOTICE,
|
||||
"TOO MANY LOGIN TRIES (%u)%s FOR '%s'",
|
||||
Index: shadow-4.3/lib/getdef.c
|
||||
Index: shadow-4.4/lib/getdef.c
|
||||
===================================================================
|
||||
--- shadow-4.3.orig/lib/getdef.c
|
||||
+++ shadow-4.3/lib/getdef.c
|
||||
--- shadow-4.4.orig/lib/getdef.c
|
||||
+++ shadow-4.4/lib/getdef.c
|
||||
@@ -57,7 +57,6 @@ struct itemdef {
|
||||
{"ENVIRON_FILE", NULL}, \
|
||||
{"ENV_TZ", NULL}, \
|
||||
|
||||
Vendored
+15
@@ -0,0 +1,15 @@
|
||||
Index: git/src/newusers.c
|
||||
===================================================================
|
||||
--- git.orig/src/newusers.c
|
||||
+++ git/src/newusers.c
|
||||
@@ -988,8 +988,8 @@
|
||||
is_shadow_grp = sgr_file_present ();
|
||||
#endif
|
||||
#ifdef ENABLE_SUBIDS
|
||||
- is_sub_uid = sub_uid_file_present ();
|
||||
- is_sub_gid = sub_gid_file_present ();
|
||||
+ is_sub_uid = sub_uid_file_present () && !rflg;
|
||||
+ is_sub_gid = sub_gid_file_present () && !rflg;
|
||||
#endif /* ENABLE_SUBIDS */
|
||||
|
||||
open_files ();
|
||||
+603
-181
File diff suppressed because it is too large
Load Diff
Vendored
+11
-11
@@ -5,10 +5,10 @@
|
||||
## DP: Add cppw / cpgr
|
||||
|
||||
@DPATCH@
|
||||
Index: git/src/cppw.c
|
||||
Index: shadow-4.4/src/cppw.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ git/src/cppw.c
|
||||
+++ shadow-4.4/src/cppw.c
|
||||
@@ -0,0 +1,238 @@
|
||||
+/*
|
||||
+ cppw, cpgr copy with locking given file over the password or group file
|
||||
@@ -248,11 +248,11 @@ Index: git/src/cppw.c
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
Index: git/src/Makefile.am
|
||||
Index: shadow-4.4/src/Makefile.am
|
||||
===================================================================
|
||||
--- git.orig/src/Makefile.am
|
||||
+++ git/src/Makefile.am
|
||||
@@ -29,6 +29,7 @@
|
||||
--- shadow-4.4.orig/src/Makefile.am
|
||||
+++ shadow-4.4/src/Makefile.am
|
||||
@@ -29,6 +29,7 @@ if ENABLE_SUBIDS
|
||||
ubin_PROGRAMS += newgidmap newuidmap
|
||||
endif
|
||||
usbin_PROGRAMS = \
|
||||
@@ -260,7 +260,7 @@ Index: git/src/Makefile.am
|
||||
chgpasswd \
|
||||
chpasswd \
|
||||
groupadd \
|
||||
@@ -87,6 +88,7 @@
|
||||
@@ -90,6 +91,7 @@ chfn_LDADD = $(LDADD) $(LIBPAM) $(LI
|
||||
chgpasswd_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBSELINUX) $(LIBCRYPT)
|
||||
chsh_LDADD = $(LDADD) $(LIBPAM) $(LIBSELINUX) $(LIBCRYPT_NOPAM) $(LIBSKEY) $(LIBMD)
|
||||
chpasswd_LDADD = $(LDADD) $(LIBPAM) $(LIBSELINUX) $(LIBCRYPT)
|
||||
@@ -268,11 +268,11 @@ Index: git/src/Makefile.am
|
||||
gpasswd_LDADD = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBCRYPT)
|
||||
groupadd_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX)
|
||||
groupdel_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX)
|
||||
Index: git/po/POTFILES.in
|
||||
Index: shadow-4.4/po/POTFILES.in
|
||||
===================================================================
|
||||
--- git.orig/po/POTFILES.in
|
||||
+++ git/po/POTFILES.in
|
||||
@@ -85,6 +85,7 @@
|
||||
--- shadow-4.4.orig/po/POTFILES.in
|
||||
+++ shadow-4.4/po/POTFILES.in
|
||||
@@ -85,6 +85,7 @@ src/chfn.c
|
||||
src/chgpasswd.c
|
||||
src/chpasswd.c
|
||||
src/chsh.c
|
||||
|
||||
+12
-20
@@ -7,10 +7,10 @@ Fixes: #192849
|
||||
Note: It could be removed if pam_tally could report the number of failures
|
||||
preceding a successful login.
|
||||
|
||||
Index: shadow-4.3/src/login.c
|
||||
Index: shadow-4.4/src/login.c
|
||||
===================================================================
|
||||
--- shadow-4.3.orig/src/login.c
|
||||
+++ shadow-4.3/src/login.c
|
||||
--- shadow-4.4.orig/src/login.c
|
||||
+++ shadow-4.4/src/login.c
|
||||
@@ -131,9 +131,9 @@ static void update_utmp (const char *use
|
||||
const char *host,
|
||||
/*@null@*/const struct utmp *utent);
|
||||
@@ -22,7 +22,7 @@ Index: shadow-4.3/src/login.c
|
||||
static void bad_time_notify (void);
|
||||
static void check_nologin (bool login_to_root);
|
||||
#else
|
||||
@@ -791,6 +791,9 @@ int main (int argc, char **argv)
|
||||
@@ -794,6 +794,9 @@ int main (int argc, char **argv)
|
||||
SYSLOG ((LOG_NOTICE,
|
||||
"TOO MANY LOGIN TRIES (%u)%s FOR '%s'",
|
||||
failcount, fromhost, failent_user));
|
||||
@@ -32,7 +32,7 @@ Index: shadow-4.3/src/login.c
|
||||
fprintf (stderr,
|
||||
_("Maximum number of tries exceeded (%u)\n"),
|
||||
failcount);
|
||||
@@ -808,6 +811,14 @@ int main (int argc, char **argv)
|
||||
@@ -811,6 +814,14 @@ int main (int argc, char **argv)
|
||||
pam_strerror (pamh, retcode)));
|
||||
failed = true;
|
||||
}
|
||||
@@ -47,7 +47,7 @@ Index: shadow-4.3/src/login.c
|
||||
|
||||
if (!failed) {
|
||||
break;
|
||||
@@ -831,6 +842,10 @@ int main (int argc, char **argv)
|
||||
@@ -834,6 +845,10 @@ int main (int argc, char **argv)
|
||||
(void) puts ("");
|
||||
(void) puts (_("Login incorrect"));
|
||||
|
||||
@@ -58,7 +58,7 @@ Index: shadow-4.3/src/login.c
|
||||
if (getdef_str("FTMP_FILE") != NULL) {
|
||||
#ifdef USE_UTMPX
|
||||
struct utmpx *failent =
|
||||
@@ -1285,6 +1300,7 @@ int main (int argc, char **argv)
|
||||
@@ -1288,6 +1303,7 @@ int main (int argc, char **argv)
|
||||
*/
|
||||
#ifndef USE_PAM
|
||||
motd (); /* print the message of the day */
|
||||
@@ -66,7 +66,7 @@ Index: shadow-4.3/src/login.c
|
||||
if ( getdef_bool ("FAILLOG_ENAB")
|
||||
&& (0 != faillog.fail_cnt)) {
|
||||
failprint (&faillog);
|
||||
@@ -1297,6 +1313,7 @@ int main (int argc, char **argv)
|
||||
@@ -1300,6 +1316,7 @@ int main (int argc, char **argv)
|
||||
username, (int) faillog.fail_cnt));
|
||||
}
|
||||
}
|
||||
@@ -74,19 +74,11 @@ Index: shadow-4.3/src/login.c
|
||||
if ( getdef_bool ("LASTLOG_ENAB")
|
||||
&& (ll.ll_time != 0)) {
|
||||
time_t ll_time = ll.ll_time;
|
||||
Index: shadow-4.3/lib/getdef.c
|
||||
Index: shadow-4.4/lib/getdef.c
|
||||
===================================================================
|
||||
--- shadow-4.3.orig/lib/getdef.c
|
||||
+++ shadow-4.3/lib/getdef.c
|
||||
@@ -56,7 +56,6 @@ struct itemdef {
|
||||
{"ENV_HZ", NULL}, \
|
||||
{"ENVIRON_FILE", NULL}, \
|
||||
{"ENV_TZ", NULL}, \
|
||||
- {"FAILLOG_ENAB", NULL}, \
|
||||
{"ISSUE_FILE", NULL}, \
|
||||
{"LASTLOG_ENAB", NULL}, \
|
||||
{"LOGIN_STRING", NULL}, \
|
||||
@@ -86,6 +85,7 @@ static struct itemdef def_table[] = {
|
||||
--- shadow-4.4.orig/lib/getdef.c
|
||||
+++ shadow-4.4/lib/getdef.c
|
||||
@@ -86,6 +86,7 @@ static struct itemdef def_table[] = {
|
||||
{"ENV_SUPATH", NULL},
|
||||
{"ERASECHAR", NULL},
|
||||
{"FAIL_DELAY", NULL},
|
||||
|
||||
+13
-21
@@ -7,10 +7,10 @@ Status wrt upstream: Forwarded but not applied yet
|
||||
|
||||
Note: If removed, FAIL_DELAY must be re-added to /etc/login.defs
|
||||
|
||||
Index: shadow-4.3/src/login.c
|
||||
Index: shadow-4.4/src/login.c
|
||||
===================================================================
|
||||
--- shadow-4.3.orig/src/login.c
|
||||
+++ shadow-4.3/src/login.c
|
||||
--- shadow-4.4.orig/src/login.c
|
||||
+++ shadow-4.4/src/login.c
|
||||
@@ -525,7 +525,6 @@ int main (int argc, char **argv)
|
||||
#if defined(HAVE_STRFTIME) && !defined(USE_PAM)
|
||||
char ptime[80];
|
||||
@@ -19,7 +19,7 @@ Index: shadow-4.3/src/login.c
|
||||
unsigned int retries;
|
||||
bool subroot = false;
|
||||
#ifndef USE_PAM
|
||||
@@ -545,6 +544,7 @@ int main (int argc, char **argv)
|
||||
@@ -546,6 +545,7 @@ int main (int argc, char **argv)
|
||||
pid_t child;
|
||||
char *pam_user = NULL;
|
||||
#else
|
||||
@@ -27,7 +27,7 @@ Index: shadow-4.3/src/login.c
|
||||
struct spwd *spwd = NULL;
|
||||
#endif
|
||||
/*
|
||||
@@ -705,7 +705,6 @@ int main (int argc, char **argv)
|
||||
@@ -708,7 +708,6 @@ int main (int argc, char **argv)
|
||||
}
|
||||
|
||||
environ = newenvp; /* make new environment active */
|
||||
@@ -35,7 +35,7 @@ Index: shadow-4.3/src/login.c
|
||||
retries = getdef_unum ("LOGIN_RETRIES", RETRIES);
|
||||
|
||||
#ifdef USE_PAM
|
||||
@@ -721,8 +720,7 @@ int main (int argc, char **argv)
|
||||
@@ -724,8 +723,7 @@ int main (int argc, char **argv)
|
||||
|
||||
/*
|
||||
* hostname & tty are either set to NULL or their correct values,
|
||||
@@ -45,7 +45,7 @@ Index: shadow-4.3/src/login.c
|
||||
*
|
||||
* PAM_RHOST and PAM_TTY are used for authentication, only use
|
||||
* information coming from login or from the caller (e.g. no utmp)
|
||||
@@ -731,10 +729,6 @@ int main (int argc, char **argv)
|
||||
@@ -734,10 +732,6 @@ int main (int argc, char **argv)
|
||||
PAM_FAIL_CHECK;
|
||||
retcode = pam_set_item (pamh, PAM_TTY, tty);
|
||||
PAM_FAIL_CHECK;
|
||||
@@ -56,7 +56,7 @@ Index: shadow-4.3/src/login.c
|
||||
/* if fflg, then the user has already been authenticated */
|
||||
if (!fflg) {
|
||||
unsigned int failcount = 0;
|
||||
@@ -775,12 +769,6 @@ int main (int argc, char **argv)
|
||||
@@ -778,12 +772,6 @@ int main (int argc, char **argv)
|
||||
bool failed = false;
|
||||
|
||||
failcount++;
|
||||
@@ -69,7 +69,7 @@ Index: shadow-4.3/src/login.c
|
||||
|
||||
retcode = pam_authenticate (pamh, 0);
|
||||
|
||||
@@ -1103,14 +1091,17 @@ int main (int argc, char **argv)
|
||||
@@ -1106,14 +1094,17 @@ int main (int argc, char **argv)
|
||||
free (username);
|
||||
username = NULL;
|
||||
|
||||
@@ -87,19 +87,11 @@ Index: shadow-4.3/src/login.c
|
||||
|
||||
(void) puts (_("Login incorrect"));
|
||||
|
||||
Index: shadow-4.3/lib/getdef.c
|
||||
Index: shadow-4.4/lib/getdef.c
|
||||
===================================================================
|
||||
--- shadow-4.3.orig/lib/getdef.c
|
||||
+++ shadow-4.3/lib/getdef.c
|
||||
@@ -56,6 +56,7 @@ struct itemdef {
|
||||
{"ENV_HZ", NULL}, \
|
||||
{"ENVIRON_FILE", NULL}, \
|
||||
{"ENV_TZ", NULL}, \
|
||||
+ {"FAIL_DELAY", NULL}, \
|
||||
{"ISSUE_FILE", NULL}, \
|
||||
{"LASTLOG_ENAB", NULL}, \
|
||||
{"LOGIN_STRING", NULL}, \
|
||||
@@ -84,7 +85,6 @@ static struct itemdef def_table[] = {
|
||||
--- shadow-4.4.orig/lib/getdef.c
|
||||
+++ shadow-4.4/lib/getdef.c
|
||||
@@ -85,7 +85,6 @@ static struct itemdef def_table[] = {
|
||||
{"ENV_PATH", NULL},
|
||||
{"ENV_SUPATH", NULL},
|
||||
{"ERASECHAR", NULL},
|
||||
|
||||
+40
-13
@@ -2,10 +2,10 @@ Goal: save the [g]shadow files with the 'shadow' group and mode 0440
|
||||
|
||||
Fixes: #166793
|
||||
|
||||
Index: git/lib/commonio.c
|
||||
Index: shadow-4.4/lib/commonio.c
|
||||
===================================================================
|
||||
--- git.orig/lib/commonio.c
|
||||
+++ git/lib/commonio.c
|
||||
--- shadow-4.4.orig/lib/commonio.c
|
||||
+++ shadow-4.4/lib/commonio.c
|
||||
@@ -44,6 +44,7 @@
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
@@ -14,26 +14,53 @@ Index: git/lib/commonio.c
|
||||
#include "nscd.h"
|
||||
#ifdef WITH_TCB
|
||||
#include <tcb.h>
|
||||
@@ -966,13 +967,20 @@
|
||||
@@ -966,12 +967,23 @@ int commonio_close (struct commonio_db *
|
||||
goto fail;
|
||||
}
|
||||
} else {
|
||||
+ struct group *grp;
|
||||
/*
|
||||
* Default permissions for new [g]shadow files.
|
||||
* (passwd and group always exist...)
|
||||
*/
|
||||
- sb.st_mode = 0400;
|
||||
+ sb.st_mode = 0440;
|
||||
sb.st_uid = 0;
|
||||
- sb.st_gid = 0;
|
||||
sb.st_mode = db->st_mode;
|
||||
sb.st_uid = db->st_uid;
|
||||
sb.st_gid = db->st_gid;
|
||||
+
|
||||
+ /*
|
||||
+ * Try to retrieve the shadow's GID, and fall back to GID 0.
|
||||
+ */
|
||||
+ if ((grp = getgrnam("shadow")) != NULL)
|
||||
+ sb.st_gid = grp->gr_gid;
|
||||
+ else
|
||||
+ sb.st_gid = 0;
|
||||
+ if (sb.st_gid == 0) {
|
||||
+ if ((grp = getgrnam("shadow")) != NULL)
|
||||
+ sb.st_gid = grp->gr_gid;
|
||||
+ else
|
||||
+ sb.st_gid = 0;
|
||||
+ }
|
||||
}
|
||||
|
||||
snprintf (buf, sizeof buf, "%s+", db->filename);
|
||||
Index: shadow-4.4/lib/sgroupio.c
|
||||
===================================================================
|
||||
--- shadow-4.4.orig/lib/sgroupio.c
|
||||
+++ shadow-4.4/lib/sgroupio.c
|
||||
@@ -228,7 +228,7 @@ static struct commonio_db gshadow_db = {
|
||||
#ifdef WITH_SELINUX
|
||||
NULL, /* scontext */
|
||||
#endif
|
||||
- 0400, /* st_mode */
|
||||
+ 0440, /* st_mode */
|
||||
0, /* st_uid */
|
||||
0, /* st_gid */
|
||||
NULL, /* head */
|
||||
Index: shadow-4.4/lib/shadowio.c
|
||||
===================================================================
|
||||
--- shadow-4.4.orig/lib/shadowio.c
|
||||
+++ shadow-4.4/lib/shadowio.c
|
||||
@@ -104,7 +104,7 @@ static struct commonio_db shadow_db = {
|
||||
#ifdef WITH_SELINUX
|
||||
NULL, /* scontext */
|
||||
#endif /* WITH_SELINUX */
|
||||
- 0400, /* st_mode */
|
||||
+ 0440, /* st_mode */
|
||||
0, /* st_uid */
|
||||
0, /* st_gid */
|
||||
NULL, /* head */
|
||||
|
||||
+4
-4
@@ -8,11 +8,11 @@ Status wrt upstream: This is a Debian specific patch.
|
||||
Note: the fix of the man page is still missing.
|
||||
(to be taken from the trunk)
|
||||
|
||||
Index: git/src/su.c
|
||||
Index: shadow-4.4/src/su.c
|
||||
===================================================================
|
||||
--- git.orig/src/su.c
|
||||
+++ git/src/su.c
|
||||
@@ -1152,6 +1152,35 @@
|
||||
--- shadow-4.4.orig/src/su.c
|
||||
+++ shadow-4.4/src/su.c
|
||||
@@ -1155,6 +1155,35 @@ int main (int argc, char **argv)
|
||||
argv[0] = "-c";
|
||||
argv[1] = command;
|
||||
}
|
||||
|
||||
@@ -8,11 +8,11 @@ Etch.
|
||||
|
||||
Status wrt upstream: This patch is Debian specific.
|
||||
|
||||
Index: git/src/su.c
|
||||
Index: shadow-4.4/src/su.c
|
||||
===================================================================
|
||||
--- git.orig/src/su.c
|
||||
+++ git/src/su.c
|
||||
@@ -104,6 +104,19 @@
|
||||
--- shadow-4.4.orig/src/su.c
|
||||
+++ shadow-4.4/src/su.c
|
||||
@@ -104,6 +104,19 @@ static char caller_name[BUFSIZ];
|
||||
/* If nonzero, change some environment vars to indicate the user su'd to. */
|
||||
static bool change_environment = true;
|
||||
|
||||
@@ -30,9 +30,9 @@ Index: git/src/su.c
|
||||
+static int old_debian_behavior;
|
||||
+
|
||||
#ifdef USE_PAM
|
||||
static pam_handle_t *pamh = NULL;
|
||||
static int caught = 0;
|
||||
@@ -949,6 +962,8 @@
|
||||
static char kill_msg[256];
|
||||
static char wait_msg[256];
|
||||
@@ -952,6 +965,8 @@ int main (int argc, char **argv)
|
||||
int ret;
|
||||
#endif /* USE_PAM */
|
||||
|
||||
@@ -41,7 +41,7 @@ Index: git/src/su.c
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
(void) textdomain (PACKAGE);
|
||||
@@ -1156,7 +1171,7 @@
|
||||
@@ -1159,7 +1174,7 @@ int main (int argc, char **argv)
|
||||
* resulting string is always given to the shell with its
|
||||
* -c option.
|
||||
*/
|
||||
|
||||
Vendored
+9
-9
@@ -5,12 +5,12 @@ Note: useradd.8 needs to be regenerated.
|
||||
Status wrt upstream: not included as this is just specific
|
||||
backward compatibility for Debian
|
||||
|
||||
Index: git/man/useradd.8.xml
|
||||
Index: shadow-4.4/man/useradd.8.xml
|
||||
===================================================================
|
||||
--- git.orig/man/useradd.8.xml
|
||||
+++ git/man/useradd.8.xml
|
||||
--- shadow-4.4.orig/man/useradd.8.xml
|
||||
+++ shadow-4.4/man/useradd.8.xml
|
||||
@@ -329,6 +329,11 @@
|
||||
databases are resetted to avoid reusing the entry from a previously
|
||||
databases are reset to avoid reusing the entry from a previously
|
||||
deleted user.
|
||||
</para>
|
||||
+ <para>
|
||||
@@ -21,11 +21,11 @@ Index: git/man/useradd.8.xml
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
Index: git/src/useradd.c
|
||||
Index: shadow-4.4/src/useradd.c
|
||||
===================================================================
|
||||
--- git.orig/src/useradd.c
|
||||
+++ git/src/useradd.c
|
||||
@@ -1056,9 +1056,9 @@
|
||||
--- shadow-4.4.orig/src/useradd.c
|
||||
+++ shadow-4.4/src/useradd.c
|
||||
@@ -1056,9 +1056,9 @@ static void process_flags (int argc, cha
|
||||
};
|
||||
while ((c = getopt_long (argc, argv,
|
||||
#ifdef WITH_SELINUX
|
||||
@@ -37,7 +37,7 @@ Index: git/src/useradd.c
|
||||
#endif /* !WITH_SELINUX */
|
||||
long_options, NULL)) != -1) {
|
||||
switch (c) {
|
||||
@@ -1181,6 +1181,7 @@
|
||||
@@ -1181,6 +1181,7 @@ static void process_flags (int argc, cha
|
||||
kflg = true;
|
||||
break;
|
||||
case 'K':
|
||||
|
||||
Vendored
+3
-4
@@ -15,7 +15,6 @@
|
||||
523_su_arguments_are_no_more_concatenated_by_default
|
||||
508_nologin_in_usr_sbin
|
||||
505_useradd_recommend_adduser
|
||||
#1010_vietnamese_translation
|
||||
0001-get_map_ranges-check-for-overflow.patch
|
||||
0002-Simplify-getulong.patch
|
||||
0003-also-check-upper-for-wrap.patch
|
||||
501_commonio_group_shadow
|
||||
1000_configure_userns
|
||||
1010_vietnamese_translation
|
||||
|
||||
Vendored
+3
-3
@@ -3,10 +3,10 @@
|
||||
|
||||
DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
|
||||
|
||||
export DEB_BUILD_HARDENING=1
|
||||
|
||||
# Enable PIE, BINDNOW, and possible future flags.
|
||||
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||
DPKG_EXPORT_BUILDFLAGS = 1
|
||||
include /usr/share/dpkg/buildflags.mk
|
||||
|
||||
# Call autoreconf since we need to regenerate all the autofoo files
|
||||
include /usr/share/cdbs/1/rules/autoreconf.mk
|
||||
@@ -21,7 +21,7 @@ DEB_DESTDIR=$(CURDIR)/debian/tmp
|
||||
include /usr/share/cdbs/1/class/autotools.mk
|
||||
|
||||
# Adds extra options when calling the configure script:
|
||||
DEB_CONFIGURE_EXTRA_FLAGS := --disable-shared --without-libcrack --mandir=/usr/share/man --with-libpam --enable-shadowgrp --enable-man --disable-account-tools-setuid --with-group-name-max-length=32 --without-acl --without-attr --without-tcb SHELL=/bin/sh
|
||||
DEB_CONFIGURE_EXTRA_FLAGS := --disable-shared --without-libcrack --mandir=/usr/share/man --with-libpam --enable-shadowgrp --enable-man --disable-account-tools-setuid --with-group-name-max-length=32 --without-acl --without-attr --without-tcb
|
||||
ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
|
||||
DEB_CONFIGURE_EXTRA_FLAGS += --host=$(DEB_HOST_GNU_TYPE)
|
||||
endif
|
||||
|
||||
Reference in New Issue
Block a user