about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOndřej Bílka <neleai@seznam.cz>2014-01-14 16:07:50 +0100
committerOndřej Bílka <neleai@seznam.cz>2014-01-15 18:39:21 +0100
commitc4dd57c300aa05ab2f957d571c321237a58d0368 (patch)
treea05a45163a8d82986081e3abf07e2044c729f286
parent7beb48cbb77ef32135a07b429838521a0c181377 (diff)
downloadglibc-c4dd57c300aa05ab2f957d571c321237a58d0368.tar.gz
glibc-c4dd57c300aa05ab2f957d571c321237a58d0368.tar.xz
glibc-c4dd57c300aa05ab2f957d571c321237a58d0368.zip
Do not enable asynchronous cancellation in system. Fixes bug 14782.
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.
-rw-r--r--NEWS28
-rw-r--r--sysdeps/posix/system.c11
2 files changed, 15 insertions, 24 deletions
diff --git a/NEWS b/NEWS
index 7e30dd4557..f406522882 100644
--- 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.
diff --git a/sysdeps/posix/system.c b/sysdeps/posix/system.c
index de71e6b661..e8b921febb 100644
--- a/sysdeps/posix/system.c
+++ b/sysdeps/posix/system.c
@@ -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)