summaryrefslogtreecommitdiff
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
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)