From 550cac19beeaf3dca0466e0e14882a2634f0426b Mon Sep 17 00:00:00 2001 From: midipix Date: Sun, 22 Sep 2019 22:05:43 +0000 Subject: mgdb: winnt_xfer_partial(): verify that pid is valid. --- overlay/mgdb/gdb/winnt-nat.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/overlay/mgdb/gdb/winnt-nat.c b/overlay/mgdb/gdb/winnt-nat.c index 80641c2..37ff7bf 100644 --- a/overlay/mgdb/gdb/winnt-nat.c +++ b/overlay/mgdb/gdb/winnt-nat.c @@ -368,13 +368,9 @@ static enum target_xfer_status winnt_xfer_partial( ULONGEST * nxfered) { ssize_t ret; - pid_t pid; struct winnt_process * pidinfo; - pid = inferior_ptid.pid; - - if (!(pidinfo = winnt_process_record(pid))) - winnt_perror("internal error: record not found",pid); + pidinfo = winnt_process_record(inferior_ptid.pid); if (readbuf && writebuf) winnt_error("internal error: both readbuf and writebuf are non-null."); @@ -387,12 +383,18 @@ static enum target_xfer_status winnt_xfer_partial( switch (object) { case TARGET_OBJECT_MEMORY: + if (!pidinfo) + return TARGET_XFER_E_IO; + ret = (readbuf) ? __dbg_vm_read(pidinfo->pfd,readbuf,len,offset) : __dbg_vm_write(pidinfo->pfd,writebuf,len,offset); break; case TARGET_OBJECT_LIBRARIES: + if (!pidinfo) + return TARGET_XFER_E_IO; + ret = winnt_xfer_solibs(pidinfo,readbuf,offset,len); break; -- cgit v1.2.3