From c4dd57c300aa05ab2f957d571c321237a58d0368 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ond=C5=99ej=20B=C3=ADlka?= Date: Tue, 14 Jan 2014 16:07:50 +0100 Subject: [PATCH] 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. --- NEWS | 28 ++++++++++++++-------------- sysdeps/posix/system.c | 11 +---------- 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/NEWS b/NEWS index 7e30dd45577..f406522882a 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 de71e6b661b..e8b921febbf 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) -- 2.47.2