The branch main has been updated by trasz:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=c987d6a67766629daea0e4c51ee6baf03d4c5dfa

commit c987d6a67766629daea0e4c51ee6baf03d4c5dfa
Author:     Edward Tomasz Napierala <[email protected]>
AuthorDate: 2021-01-15 17:11:41 +0000
Commit:     Edward Tomasz Napierala <[email protected]>
CommitDate: 2021-01-19 11:21:55 +0000

    linux: map EBUSY returned by ptrace into ESRCH
    
    The ptrace(2) Linux man page claims the syscall returns ESRCH,
    if the tracee is not stopped; the native ptrace(2) returns EBUSY.
    
    Sponsored by:   The FreeBSD Foundation
---
 sys/amd64/linux/linux_ptrace.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/sys/amd64/linux/linux_ptrace.c b/sys/amd64/linux/linux_ptrace.c
index c1d05db5bc42..89fda7979359 100644
--- a/sys/amd64/linux/linux_ptrace.c
+++ b/sys/amd64/linux/linux_ptrace.c
@@ -583,7 +583,7 @@ linux_ptrace(struct thread *td, struct linux_ptrace_args 
*uap)
        case LINUX_PTRACE_PEEKDATA:
                error = linux_ptrace_peek(td, pid, addr, (void *)uap->data);
                if (error != 0)
-                       return (error);
+                       goto out;
                /*
                 * Linux expects this syscall to read 64 bits, not 32.
                 */
@@ -597,7 +597,7 @@ linux_ptrace(struct thread *td, struct linux_ptrace_args 
*uap)
        case LINUX_PTRACE_POKEDATA:
                error = kern_ptrace(td, PT_WRITE_D, pid, addr, uap->data);
                if (error != 0)
-                       return (error);
+                       goto out;
                /*
                 * Linux expects this syscall to write 64 bits, not 32.
                 */
@@ -665,5 +665,9 @@ linux_ptrace(struct thread *td, struct linux_ptrace_args 
*uap)
                break;
        }
 
+out:
+       if (error == EBUSY)
+               error = ESRCH;
+
        return (error);
 }
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to