From 4641551a7a176f31ebe75bf068b4a6e3fa5a612f Mon Sep 17 00:00:00 2001 From: Kamil Rytarowski Date: Wed, 7 Oct 2020 15:12:59 +0200 Subject: 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(-) (limited to 'gdb') diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4dc729c..300bf13 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,9 @@ 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. * nat/netbsd-nat.h (write_memory, read_memory): Likewise. * nbsd-nat.c (nbsd_nat_target::xfer_partial): Update. diff --git a/gdb/nat/netbsd-nat.c b/gdb/nat/netbsd-nat.c index cae9cc2..e0b61cd 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; -- cgit v1.1