]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Make ARM feenableexcept detect failure (bug 14907).
authorJoseph Myers <joseph@codesourcery.com>
Mon, 17 Jun 2013 17:20:23 +0000 (17:20 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Mon, 17 Jun 2013 17:20:23 +0000 (17:20 +0000)
NEWS
ports/ChangeLog.arm
ports/sysdeps/arm/feenablxcpt.c

diff --git a/NEWS b/NEWS
index 63f28927be2a234be49be62671201f115c8e70c0..be21e29e586597c5774819b5437d15a9e37b6176 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -12,15 +12,15 @@ Version 2.18
   2546, 2560, 5159, 6809, 10060, 10062, 10357, 10686, 11120, 11561, 12387,
   12515, 12723, 13550, 13889, 13951, 13988, 14142, 14176, 14200, 14256,
   14280, 14293, 14317, 14327, 14478, 14496, 14582, 14686, 14812, 14888,
-  14894, 14908, 14909, 14920, 14952, 14964, 14981, 14982, 14985, 14991,
-  14994, 14996, 15000, 15003, 15006, 15007, 15014, 15020, 15023, 15036,
-  15054, 15055, 15062, 15078, 15084, 15085, 15086, 15100, 15160, 15214,
-  15221, 15232, 15234, 15283, 15285, 15287, 15304, 15305, 15307, 15309,
-  15327, 15330, 15335, 15336, 15337, 15339, 15342, 15346, 15359, 15361,
-  15366, 15380, 15381, 15394, 15395, 15405, 15406, 15409, 15416, 15418,
-  15419, 15423, 15424, 15426, 15429, 15431, 15432, 15441, 15442, 15448,
-  15465, 15480, 15485, 15488, 15490, 15492, 15493, 15497, 15506, 15529,
-  15536, 15553, 15577, 15583, 15618, 15627, 15631.
+  14894, 14907, 14908, 14909, 14920, 14952, 14964, 14981, 14982, 14985,
+  14991, 14994, 14996, 15000, 15003, 15006, 15007, 15014, 15020, 15023,
+  15036, 15054, 15055, 15062, 15078, 15084, 15085, 15086, 15100, 15160,
+  15214, 15221, 15232, 15234, 15283, 15285, 15287, 15304, 15305, 15307,
+  15309, 15327, 15330, 15335, 15336, 15337, 15339, 15342, 15346, 15359,
+  15361, 15366, 15380, 15381, 15394, 15395, 15405, 15406, 15409, 15416,
+  15418, 15419, 15423, 15424, 15426, 15429, 15431, 15432, 15441, 15442,
+  15448, 15465, 15480, 15485, 15488, 15490, 15492, 15493, 15497, 15506,
+  15529, 15536, 15553, 15577, 15583, 15618, 15627, 15631.
 
 * CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
   #15078).
index 81792d2aa40dbf27de7644e7f626adb8b872f9d7..00f37892cdd1bfd972a60bd5981bba7f5637a626 100644 (file)
@@ -1,3 +1,9 @@
+2013-06-17  Joseph Myers  <joseph@codesourcery.com>
+
+       [BZ #14907]
+       * sysdeps/arm/feenablxcpt.c (feenableexcept): Test whether all
+       requested exception traps were enabled and return -1 if not.
+
 2013-06-15  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
        * sysdeps/unix/sysv/linux/arm/nptl/libpthread.abilist: Update.
index baad4320cc6ec16fd329db0ccfd3cc53903362bf..e2e287b6e5e2835d5495ec7a989a928f4813edde 100644 (file)
@@ -39,6 +39,18 @@ feenableexcept (int excepts)
 
       _FPU_SETCW(new_exc);
 
+      if (excepts != 0)
+       {
+         /* VFPv3 and VFPv4 do not support trapping exceptions, so
+            test whether the relevant bits were set and fail if
+            not.  */
+         unsigned int temp;
+         _FPU_GETCW (temp);
+         if ((temp & (excepts << FE_EXCEPT_SHIFT))
+             != (excepts << FE_EXCEPT_SHIFT))
+           return -1;
+       }
+
       return old_exc;
     }