about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2011-05-29 22:26:43 -0400
committerUlrich Drepper <drepper@gmail.com>2011-05-29 22:26:43 -0400
commit873ca5046137917ddb6fae7f6cf097d91612d4d6 (patch)
tree0cacfff6094cfd55b9a956f0283f9a088200b1e7
parent652ffab11358f8961770792cbbecbaec42c69479 (diff)
downloadglibc-873ca5046137917ddb6fae7f6cf097d91612d4d6.tar.gz
glibc-873ca5046137917ddb6fae7f6cf097d91612d4d6.tar.xz
glibc-873ca5046137917ddb6fae7f6cf097d91612d4d6.zip
Interpret numeric values in shadow file as signed
-rw-r--r--ChangeLog4
-rw-r--r--NEWS20
-rw-r--r--shadow/sgetspent_r.c20
3 files changed, 24 insertions, 20 deletions
diff --git a/ChangeLog b/ChangeLog
index f650fbab6c..43ac643a19 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2011-05-29  Ulrich Drepper  <drepper@gmail.com>
 
+	[BZ #9706]
+	* shadow/sgetspent_r.c (LINE_PARSER): Interpret nymeric field values
+	as signed.
+
 	* resolv/res_init.c (res_setoptions): Make the code more compact.
 
 	[BZ #11558]
diff --git a/NEWS b/NEWS
index fdd8a63c5c..955b31ee7c 100644
--- a/NEWS
+++ b/NEWS
@@ -9,16 +9,16 @@ Version 2.14
 
 * The following bugs are resolved with this release:
 
-  386, 6420, 7101, 9730, 9732, 9809, 10138, 10149, 10157, 11257, 11258,
-  11487, 11532, 11558, 11578, 11634, 11653, 11668, 11697, 11724, 11781,
-  11799, 11820, 11837, 11857, 11869, 11892, 11895, 11901, 11945, 11947,
-  11952, 11987, 12052, 12083, 12158, 12178, 12200, 12346, 12393, 12420,
-  12432, 12445, 12449, 12453, 12454, 12460, 12469, 12489, 12509, 12510,
-  12511, 12518, 12527, 12541, 12545, 12551, 12582, 12583, 12587, 12597,
-  12601, 12611, 12625, 12626, 12631, 12650, 12653, 12655, 12660, 12671,
-  12681, 12685, 12711, 12713, 12714, 12717, 12723, 12724, 12734, 12738,
-  12746, 12766, 12775, 12777, 12782, 12788, 12792, 12795, 12811, 12813,
-  12814
+  386, 6420, 7101, 9706, 9730, 9732, 9809, 10138, 10149, 10157, 11257,
+  11258, 11487, 11532, 11558, 11578, 11634, 11653, 11668, 11697, 11724,
+  11781, 11799, 11820, 11837, 11857, 11869, 11892, 11895, 11901, 11945,
+  11947, 11952, 11987, 12052, 12083, 12158, 12178, 12200, 12346, 12393,
+  12420, 12432, 12445, 12449, 12453, 12454, 12460, 12469, 12489, 12509,
+  12510, 12511, 12518, 12527, 12541, 12545, 12551, 12582, 12583, 12587,
+  12597, 12601, 12611, 12625, 12626, 12631, 12650, 12653, 12655, 12660,
+  12671, 12681, 12685, 12711, 12713, 12714, 12717, 12723, 12724, 12734,
+  12738, 12746, 12766, 12775, 12777, 12782, 12788, 12792, 12795, 12811,
+  12813, 12814
 
 * The RPC implementation in libc is obsoleted.  Old programs keep working
   but new programs cannot be linked with the routines in libc anymore.
diff --git a/shadow/sgetspent_r.c b/shadow/sgetspent_r.c
index 5599ee4ec8..5db4aec7a2 100644
--- a/shadow/sgetspent_r.c
+++ b/shadow/sgetspent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998, 2005, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 1996-1998, 2005, 2009, 2011 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -52,11 +52,11 @@ LINE_PARSER
  else
    {
      STRING_FIELD (result->sp_pwdp, ISCOLON, 0);
-     INT_FIELD_MAYBE_NULL (result->sp_lstchg, ISCOLON, 0, 10, (long int),
+     INT_FIELD_MAYBE_NULL (result->sp_lstchg, ISCOLON, 0, 10, (long int) (int),
 			   (long int) -1);
-     INT_FIELD_MAYBE_NULL (result->sp_min, ISCOLON, 0, 10, (long int),
+     INT_FIELD_MAYBE_NULL (result->sp_min, ISCOLON, 0, 10, (long int) (int),
 			   (long int) -1);
-     INT_FIELD_MAYBE_NULL (result->sp_max, ISCOLON, 0, 10, (long int),
+     INT_FIELD_MAYBE_NULL (result->sp_max, ISCOLON, 0, 10, (long int) (int),
 			   (long int) -1);
      while (isspace (*line))
        ++line;
@@ -70,12 +70,12 @@ LINE_PARSER
        }
      else
        {
-	 INT_FIELD_MAYBE_NULL (result->sp_warn, ISCOLON, 0, 10, (long int),
-			       (long int) -1);
-	 INT_FIELD_MAYBE_NULL (result->sp_inact, ISCOLON, 0, 10, (long int),
-			       (long int) -1);
-	 INT_FIELD_MAYBE_NULL (result->sp_expire, ISCOLON, 0, 10, (long int),
-			       (long int) -1);
+	 INT_FIELD_MAYBE_NULL (result->sp_warn, ISCOLON, 0, 10,
+			       (long int) (int), (long int) -1);
+	 INT_FIELD_MAYBE_NULL (result->sp_inact, ISCOLON, 0, 10,
+			       (long int) (int), (long int) -1);
+	 INT_FIELD_MAYBE_NULL (result->sp_expire, ISCOLON, 0, 10,
+			       (long int) (int), (long int) -1);
 	 if (*line != '\0')
 	   INT_FIELD_MAYBE_NULL (result->sp_flag, FALSEP, 0, 10,
 				 (unsigned long int), ~0ul)