From 4641551a7a176f31ebe75bf068b4a6e3fa5a612f Mon Sep 17 00:00:00 2001 From: Kamil Rytarowski Date: Wed, 7 Oct 2020 15:12:59 +0200 Subject: [PATCH] Correct logical error in NetBSD's read_memory and write_memory In case of repeated ptrace PT_IO call and returning the value of transferred bytes equal to 0, do not return without setting xfered_len. gdb/ChangeLog: * nat/netbsd-nat.c (write_memory, read_memory): Update. --- gdb/ChangeLog | 4 ++++ gdb/nat/netbsd-nat.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4dc729c69b..300bf139b7 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2020-10-07 Kamil Rytarowski + + * nat/netbsd-nat.c (write_memory, read_memory): Update. + 2020-10-07 Kamil Rytarowski * nat/netbsd-nat.c (write_memory, read_memory): Add. diff --git a/gdb/nat/netbsd-nat.c b/gdb/nat/netbsd-nat.c index cae9cc2fc2..e0b61cd4b2 100644 --- a/gdb/nat/netbsd-nat.c +++ b/gdb/nat/netbsd-nat.c @@ -238,7 +238,7 @@ write_memory (pid_t pid, unsigned const char *writebuf, CORE_ADDR offset, return errno; } if (io.piod_len == 0) - return 0; + break; bytes_written += io.piod_len; io.piod_len = len - bytes_written; @@ -276,7 +276,7 @@ read_memory (pid_t pid, unsigned char *readbuf, CORE_ADDR offset, if (rv == -1) return errno; if (io.piod_len == 0) - return 0; + break; bytes_read += io.piod_len; io.piod_len = len - bytes_read; -- 2.34.1