aboutsummaryrefslogtreecommitdiffstats
path: root/community/shadow/302-CVE-2016-6252-fix-integer-overflow.patch
diff options
context:
space:
mode:
authorHenrik Riomar <henrik.riomar@gmail.com>2017-02-25 13:08:30 +0100
committerNatanael Copa <ncopa@alpinelinux.org>2017-02-28 15:40:15 +0100
commit0d87734696c2c04083fae90ef045d87926d35ebd (patch)
tree410c8ab7055c5cd175dfd84eb4dfdce2df2ad58a /community/shadow/302-CVE-2016-6252-fix-integer-overflow.patch
parent6d705ef8e8170f3c4404e256e06aacd27412a6a0 (diff)
downloadaports-0d87734696c2c04083fae90ef045d87926d35ebd.tar.bz2
aports-0d87734696c2c04083fae90ef045d87926d35ebd.tar.xz
community/shadow: CVE-2016-6252 & CVE-2017-2616
Patches from Debian Jessie (1:4.2-3+deb8u3 & 1:4.2-3+deb8u2) fixes #6943 (cherry picked from commit e9a92d060e2e59ac087373af9b81546c2a761d07)
Diffstat (limited to 'community/shadow/302-CVE-2016-6252-fix-integer-overflow.patch')
-rw-r--r--community/shadow/302-CVE-2016-6252-fix-integer-overflow.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/community/shadow/302-CVE-2016-6252-fix-integer-overflow.patch b/community/shadow/302-CVE-2016-6252-fix-integer-overflow.patch
new file mode 100644
index 0000000000..2f2195b401
--- /dev/null
+++ b/community/shadow/302-CVE-2016-6252-fix-integer-overflow.patch
@@ -0,0 +1,46 @@
+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] 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.1.4
+