about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog13
-rw-r--r--fedora/glibc.spec.in10
-rw-r--r--posix/fnmatch_loop.c3
-rw-r--r--stdlib/strtod_l.c16
-rw-r--r--time/tst-mktime2.c1
5 files changed, 29 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 67012de252..677fdf054c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2004-11-29  Jakub Jelinek  <jakub@redhat.com>
+
+	* stdlib/strtod_l.c (INTERNAL (__STRTOF)): If densize > 2
+	and numsize < densize, always shift num up by empty + 1
+	limbs.
+
+	* posix/fnmatch_loop.c (internal_fnmatch): Clear is_seqval after
+	normal_bracket label.
+
+	* time/tst-mktime2.c (bigtime_test): Initialize tm.tm_isdst to -1.
+
 2004-11-29  Roland McGrath  <roland@redhat.com>
 
 	* posix/confstr.c: Avoid punctuation in #error text.
@@ -51,8 +62,6 @@
 
 2004-11-26  Jakub Jelinek  <jakub@redhat.com>
 
-	* sysdeps/generic/unsecvars.h (UNSECURE_ENVVARS): Add GETCONF_DIR.
-
 	* posix/Makefile (generated: Add getconf.speclist.
 	($(inst_libexecdir)/getconf): Use getconf.speclist instead of
 	getconf output.
diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in
index d27fe6e4f2..fa2c6ccc50 100644
--- a/fedora/glibc.spec.in
+++ b/fedora/glibc.spec.in
@@ -1,4 +1,4 @@
-%define glibcrelease 85
+%define glibcrelease 86
 %define auxarches i586 i686 athlon sparcv9 alphaev6
 %define prelinkarches noarch
 %define nptlarches i386 i686 athlon x86_64 ia64 s390 s390x sparcv9 ppc ppc64
@@ -1258,6 +1258,14 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Tue Nov 30 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-86
+- update from CVS
+  - some posix_opt.h fixes
+- fix strtold use of unitialized memory (#141000)
+- some more bugfixes for bugs detected by valgrind
+- rebuilt with GCC >= 3.4.3-5 to avoid packed stack layout
+  on s390{,x} (#139678)
+
 * Fri Nov 26 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-85
 - update from CVS
   - support -v specification in getconf
diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
index fb56bd426b..449e5e02b4 100644
--- a/posix/fnmatch_loop.c
+++ b/posix/fnmatch_loop.c
@@ -600,6 +600,9 @@ FCT (pattern, string, string_end, no_leading_period, flags)
 			if (!is_range && c == fn)
 			  goto matched;
 
+			/* This is needed if we goto normal_bracket; from
+			   outside of is_seqval's scope.  */
+			is_seqval = 0;
 			cold = c;
 			c = *p++;
 		      }
diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c
index dce65cb83c..a656789f4c 100644
--- a/stdlib/strtod_l.c
+++ b/stdlib/strtod_l.c
@@ -1442,15 +1442,10 @@ INTERNAL (__STRTOF) (nptr, endptr, group, loc)
 	  if (numsize < densize)
 	    {
 	      mp_size_t empty = densize - numsize;
+	      register int i;
 
 	      if (bits <= 0)
-		{
-		  register int i;
-		  for (i = numsize; i > 0; --i)
-		    num[i + empty] = num[i - 1];
-		  MPN_ZERO (num, empty + 1);
-		  exponent -= empty * BITS_PER_MP_LIMB;
-		}
+		exponent -= empty * BITS_PER_MP_LIMB;
 	      else
 		{
 		  if (bits + empty * BITS_PER_MP_LIMB <= MANT_DIG)
@@ -1459,7 +1454,6 @@ INTERNAL (__STRTOF) (nptr, endptr, group, loc)
 			 cannot optimize the `else' case that good and
 			 this reflects all currently used FLOAT types
 			 and GMP implementations.  */
-		      register int i;
 #if RETURN_LIMB_SIZE <= 2
 		      assert (empty == 1);
 		      __mpn_lshift_1 (retval, RETURN_LIMB_SIZE,
@@ -1470,9 +1464,6 @@ INTERNAL (__STRTOF) (nptr, endptr, group, loc)
 		      while (i >= 0)
 			retval[i--] = 0;
 #endif
-		      for (i = numsize; i > 0; --i)
-			num[i + empty] = num[i - 1];
-		      MPN_ZERO (num, empty + 1);
 		    }
 		  else
 		    {
@@ -1492,6 +1483,9 @@ INTERNAL (__STRTOF) (nptr, endptr, group, loc)
 		    }
 		  bits += empty * BITS_PER_MP_LIMB;
 		}
+	      for (i = numsize; i > 0; --i)
+		num[i + empty] = num[i - 1];
+	      MPN_ZERO (num, empty + 1);
 	    }
 	  else
 	    {
diff --git a/time/tst-mktime2.c b/time/tst-mktime2.c
index fe7c370928..6279218cba 100644
--- a/time/tst-mktime2.c
+++ b/time/tst-mktime2.c
@@ -78,6 +78,7 @@ bigtime_test (int j)
   struct tm tm;
   time_t now;
   tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j;
+  tm.tm_isdst = -1;
   now = mktime (&tm);
   if (now != (time_t) -1)
     {