From: Pádraig Brady Date: Thu, 13 Aug 2009 13:37:43 +0000 (+0100) Subject: dd: fix a signal handling race X-Git-Tag: v7.5~19 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e4caea57759495847dc52f7a7d062500dd711a96;p=thirdparty%2Fcoreutils.git dd: fix a signal handling race * src/dd.c (main): Install the signal handlers at startup rather than just before the copy starts. In this way signals received before the copy (like during a slow truncate for e.g.) will be deferred and handled consistently. * THANKS: Add Bernhard's email address. * NEWS: Mention the fix. Reported by Bernhard Voelker. --- diff --git a/NEWS b/NEWS index 6df0d65a6f..a88546d81f 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,9 @@ GNU coreutils NEWS -*- outline -*- dd's oflag=direct option now works even when the size of the input is not a multiple of e.g., 512 bytes. + dd now handles signals consistently even when they're received + before data copying has started. + install runs faster again with SELinux enabled [introduced in coreutils-7.0] diff --git a/THANKS b/THANKS index d3541ce819..bd078db1f7 100644 --- a/THANKS +++ b/THANKS @@ -75,6 +75,7 @@ Bernd Melchers melchers@cis.fu-berlin.de Bernhard Baehr bernhard.baehr@gmx.de Bernhard Gabler bernhard@uni-koblenz.de Bernhard Rosenkraenzer bero@redhat.de +Bernhard Voelker bernhard.voelker@siemens-enterprise.com Bert Deknuydt Bert.Deknuydt@esat.kuleuven.ac.be Bert Wesarg bert.wesarg@googlemail.com Bill Peters peters@gaffel.as.arizona.edu diff --git a/src/dd.c b/src/dd.c index d9e4c85b8b..30bd8085c7 100644 --- a/src/dd.c +++ b/src/dd.c @@ -1828,6 +1828,8 @@ main (int argc, char **argv) int exit_status; off_t offset; + install_signal_handlers (); + initialize_main (&argc, &argv); set_program_name (argv[0]); setlocale (LC_ALL, ""); @@ -1928,8 +1930,6 @@ main (int argc, char **argv) } } - install_signal_handlers (); - start_time = gethrxtime (); exit_status = dd_copy ();