On Sun, Apr 20, 2014 at 05:36:29PM +0200, Bernhard Voelker wrote: > On 04/20/2014 11:53 AM, Sami Kerola wrote: > > On 16 April 2014 11:13, Karel Zak <kzak@xxxxxxxxxx> wrote: > >> On Tue, Apr 15, 2014 at 12:15:33PM +0100, Sami Kerola wrote: > >>> +HELPER_SYMLINK="$TS_CWD/$(mktemp -u XXXXXXXXXXXXXXX)" > >>> +ln -s "$TS_HELPER_SIGRECEIVE" "$HELPER_SYMLINK" > >>> +trap "rm -f $HELPER_SYMLINK" 0 > >>> + > >>> +su nobody -s /bin/sh -c "$HELPER_SYMLINK $TS_CWD/nobody" >> "$TS_OUTPUT" 2>&1 & > >> > >> I don't understand this idea, on my system Mr.Nobody can not write > >> to my directories. > >> > >> It would be also better to add --setgit and --setuid to the helper to > >> avoid extra su(1) process, then you can use TEST_PID=$! > > > > The --setuid is added, [...] > > yes, setuid is a great idea, yet I'm not sure > if using UID 1 is a good idea: > > if (setuid(1) < 0) > err(TEST_SIGRECEIVE_FAILURE, "setuid failed"); Hmm, I though about non-hardcoded uid --seruid <uid> or so... BTW, we have tests/commands.sh:TS_TESTUSER=${TS_TESTUSER:-"test"} maybe we can use "nobody" rather than the "test", and if the $TS_TESTUSER does not exist then ts_skip the test. Currently the $TS_TESTUSER is nowhere used. > >> awk '/SigCgt/ { print $2}' /proc/<pid>/status > >> > >> to check if the signal handlers are already initialized (the final > >> mask is 800000027ffbfeff on my system). > > > > That is a much better way to determine if the process is ready to be > > killed. Implemented in my git, and I have only one remaining question. > > I'm not a big fan of magic numbers. Is there a chance to narrow down > the relevant bits? Good point, hardcoded mask is probably bad idea as we use #ifdefs for the signals in the code. We don't have to test whole mask, just test for the last signal used in the test_sigreceive.c, for example if the last signal specified by sigaction() in the code is SIGHUP (=1), then sigmask=$((16#$( awk '/SigCgt/ { print $2}' /proc/$TEST_PID/status) )) if [ $(( $sigmask & 1 )) == 1 ]; then echo "yes, test program is ready" fi is enough. Note that now the code add SIGHUP as the first thing to the mask. Karel -- Karel Zak <kzak@xxxxxxxxxx> http://karelzak.blogspot.com -- To unsubscribe from this list: send the line "unsubscribe util-linux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html