[glibc/f18] - Backport fix for nss_db crash when db contains exactly one entry.(#878913)

Patsy Franklin pfrankli at fedoraproject.org
Tue Dec 11 16:52:12 UTC 2012


commit 6bee5d1fc3c1cb824fd4ebadb24da613d0d5b140
Author: Patsy Franklin <pfrankli at redhat.com>
Date:   Tue Dec 11 11:50:55 2012 -0500

    - Backport fix for nss_db crash when db contains exactly one entry.(#878913)

 glibc-rh878913.patch |   32 ++++++++++++++++++++++++++++++++
 glibc.spec           |    9 ++++++++-
 2 files changed, 40 insertions(+), 1 deletions(-)
---
diff --git a/glibc-rh878913.patch b/glibc-rh878913.patch
new file mode 100644
index 0000000..822bdee
--- /dev/null
+++ b/glibc-rh878913.patch
@@ -0,0 +1,32 @@
+--- a/nss/makedb.c
++++ b/nss/makedb.c
+@@ -591,13 +591,16 @@ copy_valstr (const void *nodep, const VISIT which, const int depth)
+ }
+ 
+ 
++/* Determine if the candidate is prime by using a modified trial division
++   algorithm. The candidate must be both odd and greater than 4.  */
+ static int
+ is_prime (size_t candidate)
+ {
+-  /* No even number and none less than 10 will be passed here.  */
+   size_t divn = 3;
+   size_t sq = divn * divn;
+ 
++  assert (candidate > 4 && candidate % 2 != 0);
++
+   while (sq < candidate && candidate % divn != 0)
+     {
+       ++divn;
+@@ -612,8 +615,8 @@ is_prime (size_t candidate)
+ static size_t
+ next_prime (size_t seed)
+ {
+-  /* Make it definitely odd.  */
+-  seed |= 1;
++  /* Make sure that we're always greater than 4.  */
++  seed = (seed + 4) | 1;
+ 
+   while (!is_prime (seed))
+     seed += 2;
+
diff --git a/glibc.spec b/glibc.spec
index 2a9d706..51bf9b9 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -28,7 +28,7 @@
 Summary: The GNU libc libraries
 Name: glibc
 Version: %{glibcversion}
-Release: 27%{?dist}
+Release: 28%{?dist}
 # GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
 # Things that are linked directly into dynamically linked programs
 # and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
@@ -196,6 +196,9 @@ Patch2041: %{name}-rh577950.patch
 
 Patch2042: %{name}-rh864820.patch
 
+#See http://sourceware.org/ml/libc-alpha/2012-11/msg00747.html
+Patch2043: %{name}-rh878913.patch
+
 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 Obsoletes: glibc-profile < 2.4
 Obsoletes: nss_db
@@ -475,6 +478,7 @@ rm -rf %{glibcportsdir}
 %patch1049 -p1
 %patch1050 -p1
 %patch1051 -p1
+%patch2043 -p1
 
 # On powerpc32, hp timing is only available in power4/power6
 # libs, not in base, so pre-power4 dynamic linker is incompatible
@@ -1281,6 +1285,9 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Mon Dec 10 2012 Patsy Franklin <pfrankli at redhat.com> - 2.16-28
+  - Backport fix for nss_db crash when db contains exactly one entry.(#878913)
+
 * Thu Dec 7 2012 Patsy Franklin <pfrankli at redhat.com> - 2.16-27
   - Backport crypto support from upstream. (#811753)
 


More information about the scm-commits mailing list