aboutsummaryrefslogtreecommitdiff
path: root/gdb/nat
diff options
context:
space:
mode:
authorKamil Rytarowski <n54@gmx.com>2020-10-07 15:12:59 +0200
committerKamil Rytarowski <n54@gmx.com>2020-10-07 15:15:54 +0200
commit4641551a7a176f31ebe75bf068b4a6e3fa5a612f (patch)
tree5fd2f69d3a3ba8660a95a039aef24df65ccfc643 /gdb/nat
parent2be01f639c0983caeafdd36127ac3ef517d7a643 (diff)
downloadgdb-4641551a7a176f31ebe75bf068b4a6e3fa5a612f.zip
gdb-4641551a7a176f31ebe75bf068b4a6e3fa5a612f.tar.gz
gdb-4641551a7a176f31ebe75bf068b4a6e3fa5a612f.tar.bz2
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.
Diffstat (limited to 'gdb/nat')
-rw-r--r--gdb/nat/netbsd-nat.c4
1 files changed, 2 insertions, 2 deletions
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;