diff mbox series

selftests/exec: execveat: Improve debug reporting

Message ID 20240313185606.work.073-kees@kernel.org (mailing list archive)
State Mainlined
Commit 0ef58ccb6178b1a40edfd027d8a11a52fa629215
Headers show
Series selftests/exec: execveat: Improve debug reporting | expand

Commit Message

Kees Cook March 13, 2024, 6:56 p.m. UTC
Children processes were reporting their status, duplicating the
parent's. Remove that, and add some additional details about the test
execution.

Signed-off-by: Kees Cook <keescook@chromium.org>
---
Cc: Eric Biederman <ebiederm@xmission.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: Muhammad Usama Anjum <usama.anjum@collabora.com>
Cc: linux-mm@kvack.org
Cc: linux-kselftest@vger.kernel.org
---
 tools/testing/selftests/exec/execveat.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

Comments

Muhammad Usama Anjum March 14, 2024, 8:54 a.m. UTC | #1
On 3/13/24 11:56 PM, Kees Cook wrote:
> Children processes were reporting their status, duplicating the
> parent's. Remove that, and add some additional details about the test
> execution.
> 
> Signed-off-by: Kees Cook <keescook@chromium.org>
> ---
> Cc: Eric Biederman <ebiederm@xmission.com>
> Cc: Shuah Khan <shuah@kernel.org>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: Muhammad Usama Anjum <usama.anjum@collabora.com>
> Cc: linux-mm@kvack.org
> Cc: linux-kselftest@vger.kernel.org
Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>

> ---
>  tools/testing/selftests/exec/execveat.c | 12 +++++++-----
>  1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/tools/testing/selftests/exec/execveat.c b/tools/testing/selftests/exec/execveat.c
> index 0546ca24f2b2..6418ded40bdd 100644
> --- a/tools/testing/selftests/exec/execveat.c
> +++ b/tools/testing/selftests/exec/execveat.c
> @@ -98,10 +98,9 @@ static int check_execveat_invoked_rc(int fd, const char *path, int flags,
>  	if (child == 0) {
>  		/* Child: do execveat(). */
>  		rc = execveat_(fd, path, argv, envp, flags);
> -		ksft_print_msg("execveat() failed, rc=%d errno=%d (%s)\n",
> +		ksft_print_msg("child execveat() failed, rc=%d errno=%d (%s)\n",
>  			       rc, errno, strerror(errno));
> -		ksft_test_result_fail("%s\n", test_name);
> -		exit(1);  /* should not reach here */
> +		exit(errno);
>  	}
>  	/* Parent: wait for & check child's exit status. */
>  	rc = waitpid(child, &status, 0);
> @@ -226,11 +225,14 @@ static int check_execveat_pathmax(int root_dfd, const char *src, int is_script)
>  	 * "If the command name is found, but it is not an executable utility,
>  	 * the exit status shall be 126."), so allow either.
>  	 */
> -	if (is_script)
> +	if (is_script) {
> +		ksft_print_msg("Invoke script via root_dfd and relative filename\n");
>  		fail += check_execveat_invoked_rc(root_dfd, longpath + 1, 0,
>  						  127, 126);
> -	else
> +	} else {
> +		ksft_print_msg("Invoke exec via root_dfd and relative filename\n");
>  		fail += check_execveat(root_dfd, longpath + 1, 0);
> +	}
>  
>  	return fail;
>  }
Shuah Khan March 26, 2024, 8:46 p.m. UTC | #2
On 3/14/24 02:54, Muhammad Usama Anjum wrote:
> On 3/13/24 11:56 PM, Kees Cook wrote:
>> Children processes were reporting their status, duplicating the
>> parent's. Remove that, and add some additional details about the test
>> execution.
>>
>> Signed-off-by: Kees Cook <keescook@chromium.org>
>> ---
>> Cc: Eric Biederman <ebiederm@xmission.com>
>> Cc: Shuah Khan <shuah@kernel.org>
>> Cc: Mark Brown <broonie@kernel.org>
>> Cc: Muhammad Usama Anjum <usama.anjum@collabora.com>
>> Cc: linux-mm@kvack.org
>> Cc: linux-kselftest@vger.kernel.org
> Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
> 

Applied to linux-kselftest fixes for the next rc.

thanks,
-- Shuah
Kees Cook March 26, 2024, 10:40 p.m. UTC | #3
On Tue, Mar 26, 2024 at 02:46:02PM -0600, Shuah Khan wrote:
> On 3/14/24 02:54, Muhammad Usama Anjum wrote:
> > On 3/13/24 11:56 PM, Kees Cook wrote:
> > > Children processes were reporting their status, duplicating the
> > > parent's. Remove that, and add some additional details about the test
> > > execution.
> > > 
> > > Signed-off-by: Kees Cook <keescook@chromium.org>
> > > ---
> > > Cc: Eric Biederman <ebiederm@xmission.com>
> > > Cc: Shuah Khan <shuah@kernel.org>
> > > Cc: Mark Brown <broonie@kernel.org>
> > > Cc: Muhammad Usama Anjum <usama.anjum@collabora.com>
> > > Cc: linux-mm@kvack.org
> > > Cc: linux-kselftest@vger.kernel.org
> > Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
> > 
> 
> Applied to linux-kselftest fixes for the next rc.

This is already part of the execve tree...
Shuah Khan March 27, 2024, 4:19 p.m. UTC | #4
On 3/26/24 16:40, Kees Cook wrote:
> On Tue, Mar 26, 2024 at 02:46:02PM -0600, Shuah Khan wrote:
>> On 3/14/24 02:54, Muhammad Usama Anjum wrote:
>>> On 3/13/24 11:56 PM, Kees Cook wrote:
>>>> Children processes were reporting their status, duplicating the
>>>> parent's. Remove that, and add some additional details about the test
>>>> execution.
>>>>
>>>> Signed-off-by: Kees Cook <keescook@chromium.org>
>>>> ---
>>>> Cc: Eric Biederman <ebiederm@xmission.com>
>>>> Cc: Shuah Khan <shuah@kernel.org>
>>>> Cc: Mark Brown <broonie@kernel.org>
>>>> Cc: Muhammad Usama Anjum <usama.anjum@collabora.com>
>>>> Cc: linux-mm@kvack.org
>>>> Cc: linux-kselftest@vger.kernel.org
>>> Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
>>>
>>
>> Applied to linux-kselftest fixes for the next rc.
> 
> This is already part of the execve tree...
> 

Thanks. I will go drop it.

thanks,
-- Shuah
diff mbox series

Patch

diff --git a/tools/testing/selftests/exec/execveat.c b/tools/testing/selftests/exec/execveat.c
index 0546ca24f2b2..6418ded40bdd 100644
--- a/tools/testing/selftests/exec/execveat.c
+++ b/tools/testing/selftests/exec/execveat.c
@@ -98,10 +98,9 @@  static int check_execveat_invoked_rc(int fd, const char *path, int flags,
 	if (child == 0) {
 		/* Child: do execveat(). */
 		rc = execveat_(fd, path, argv, envp, flags);
-		ksft_print_msg("execveat() failed, rc=%d errno=%d (%s)\n",
+		ksft_print_msg("child execveat() failed, rc=%d errno=%d (%s)\n",
 			       rc, errno, strerror(errno));
-		ksft_test_result_fail("%s\n", test_name);
-		exit(1);  /* should not reach here */
+		exit(errno);
 	}
 	/* Parent: wait for & check child's exit status. */
 	rc = waitpid(child, &status, 0);
@@ -226,11 +225,14 @@  static int check_execveat_pathmax(int root_dfd, const char *src, int is_script)
 	 * "If the command name is found, but it is not an executable utility,
 	 * the exit status shall be 126."), so allow either.
 	 */
-	if (is_script)
+	if (is_script) {
+		ksft_print_msg("Invoke script via root_dfd and relative filename\n");
 		fail += check_execveat_invoked_rc(root_dfd, longpath + 1, 0,
 						  127, 126);
-	else
+	} else {
+		ksft_print_msg("Invoke exec via root_dfd and relative filename\n");
 		fail += check_execveat(root_dfd, longpath + 1, 0);
+	}
 
 	return fail;
 }