]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Do not enable asynchronous cancellation in system. Fixes bug 14782.
authorOndřej Bílka <neleai@seznam.cz>
Tue, 14 Jan 2014 15:07:50 +0000 (16:07 +0100)
committerOndřej Bílka <neleai@seznam.cz>
Wed, 15 Jan 2014 17:39:21 +0000 (18:39 +0100)
We needlessly enabled thread cancellation before it was necessary. As
only call that needs to be guarded is waitpid which is cancellation
point we could remove cancellation altogether.

NEWS
sysdeps/posix/system.c

diff --git a/NEWS b/NEWS
index 7e30dd4557708f4c4f1a868d9c83b875c49f65a9..f406522882af5731e18b4e006349fae97c5169a2 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -12,20 +12,20 @@ Version 2.19
   156, 387, 431, 762, 832, 926, 2801, 4772, 6786, 6787, 6807, 6810, 7003,
   9721, 9954, 10253, 10278, 11087, 11157, 11214, 12100, 12486, 12986,
   13028, 13982, 13985, 14029, 14032, 14120, 14143, 14155, 14286, 14547,
-  14699, 14752, 14876, 14910, 15004, 15048, 15073, 15089, 15128, 15218,
-  15268, 15277, 15308, 15362, 15374, 15400, 15425, 15427, 15483, 15522,
-  15531, 15532, 15593, 15601, 15608, 15609, 15610, 15632, 15640, 15670,
-  15672, 15680, 15681, 15723, 15734, 15735, 15736, 15748, 15749, 15754,
-  15760, 15763, 15764, 15797, 15799, 15825, 15843, 15844, 15846, 15847,
-  15849, 15850, 15855, 15856, 15857, 15859, 15867, 15886, 15887, 15890,
-  15892, 15893, 15895, 15897, 15901, 15905, 15909, 15915, 15917, 15919,
-  15921, 15923, 15939, 15941, 15948, 15963, 15966, 15985, 15988, 15997,
-  16032, 16034, 16036, 16037, 16038, 16041, 16055, 16071, 16072, 16074,
-  16077, 16078, 16103, 16112, 16133, 16143, 16144, 16146, 16150, 16151,
-  16153, 16167, 16172, 16195, 16214, 16245, 16271, 16274, 16283, 16289,
-  16293, 16314, 16316, 16330, 16337, 16338, 16356, 16365, 16366, 16369,
-  16372, 16375, 16379, 16384, 16385, 16386, 16387, 16390, 16394, 16400,
-  16407, 16408, 16414.
+  14699, 14752, 14782, 14876, 14910, 15004, 15048, 15073, 15089, 15128,
+  15218, 15268, 15277, 15308, 15362, 15374, 15400, 15425, 15427, 15483,
+  15522, 15531, 15532, 15593, 15601, 15608, 15609, 15610, 15632, 15640,
+  15670, 15672, 15680, 15681, 15723, 15734, 15735, 15736, 15748, 15749,
+  15754, 15760, 15763, 15764, 15797, 15799, 15825, 15843, 15844, 15846,
+  15847, 15849, 15850, 15855, 15856, 15857, 15859, 15867, 15886, 15887,
+  15890, 15892, 15893, 15895, 15897, 15901, 15905, 15909, 15915, 15917,
+  15919, 15921, 15923, 15939, 15941, 15948, 15963, 15966, 15985, 15988,
+  15997, 16032, 16034, 16036, 16037, 16038, 16041, 16055, 16071, 16072,
+  16074, 16077, 16078, 16103, 16112, 16133, 16143, 16144, 16146, 16150,
+  16151, 16153, 16167, 16172, 16195, 16214, 16245, 16271, 16274, 16283,
+  16289, 16293, 16314, 16316, 16330, 16337, 16338, 16356, 16365, 16366,
+  16369, 16372, 16375, 16379, 16384, 16385, 16386, 16387, 16390, 16394,
+  16400, 16407, 16408, 16414.
 
 * Slovenian translations for glibc messages have been contributed by the
   Translation Project's Slovenian team of translators.
index de71e6b661be064679793cd64ab4535aa7c69082..e8b921febbfa481e4c5a23435a4c8d79eb217616 100644 (file)
@@ -181,15 +181,6 @@ __libc_system (const char *line)
        not be available after a chroot(), for example.  */
     return do_system ("exit 0") == 0;
 
-  if (SINGLE_THREAD_P)
-    return do_system (line);
-
-  int oldtype = LIBC_CANCEL_ASYNC ();
-
-  int result = do_system (line);
-
-  LIBC_CANCEL_RESET (oldtype);
-
-  return result;
+  return do_system (line);
 }
 weak_alias (__libc_system, system)