Re: [PATCH v4 2/2] selftests: Add a test mangling with uc_sigmask

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 7/22/24 22:30, Dev Jain wrote:

On 7/22/24 20:28, Shuah Khan wrote:
On 7/15/24 05:49, Dev Jain wrote:

On 6/30/24 20:48, Oleg Nesterov wrote:
I see nothing wrong, but perhaps this test can be simplified?
Feel free to ignore.

Say,

On 06/27, Dev Jain wrote:
+void handler_usr(int signo, siginfo_t *info, void *uc)
+{
+    int ret;
+
+    /*
+     * Break out of infinite recursion caused by raise(SIGUSR1) invoked
+     * from inside the handler
+     */
+    ++cnt;
+    if (cnt > 1)
+        return;
+
+    ksft_print_msg("In handler_usr\n");

This message isn't very useful. Why do you need this message?


There isn't any specific use; I am just showing the progress

of the test. If you think this is just waste output....

Showing progress will not be useful unless it is also giving useful
information to the user. It doesn't look like it in this case.

You can drop this message.



+
+    /* SEGV blocked during handler execution, delivered on return */
+    if (raise(SIGSEGV))
+        ksft_exit_fail_perror("raise");>>> +
+    ksft_print_msg("SEGV bypassed successfully\n");
You could simply do sigprocmask(SIG_SETMASK, NULL, &oldset) and check if
SIGSEGV is blocked in oldset. SIG_SETMASK has no effect if newset == NULL.


IMHO, isn't raising the signal, and the process not terminating, a stricter test? I have already included your described approach in
the last testcase; so, the test includes both ways: raising the
signal -> process not terminating, and checking blockage with sigprocmask().


thanks,
-- Shuah





[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux