2004-10-26 Theodore A. Roth * target.c (target_read_memory_partial): Make sure the err is set. (target_write_memory_partial): Ditto. Index: target.c =================================================================== RCS file: /cvs/src/src/gdb/target.c,v retrieving revision 1.90 diff -u -p -p -r1.90 target.c --- target.c 8 Oct 2004 20:29:55 -0000 1.90 +++ target.c 26 Oct 2004 17:35:14 -0000 @@ -1233,8 +1233,20 @@ int target_read_memory_partial (CORE_ADDR memaddr, char *buf, int len, int *err) { if (target_xfer_partial_p ()) - return target_xfer_partial (target_stack, TARGET_OBJECT_MEMORY, NULL, - buf, NULL, memaddr, len); + { + int retval = target_xfer_partial (target_stack, TARGET_OBJECT_MEMORY, + NULL, buf, NULL, memaddr, len); + + /* troth/2004-10-26: Are we certain that errno will be set properly if + the above call returns -1? */ + + if (retval == -1) + *err = errno; + else + *err = 0; + + return retval; + } else return target_xfer_memory_partial (memaddr, buf, len, 0, err); } @@ -1243,8 +1255,17 @@ int target_write_memory_partial (CORE_ADDR memaddr, char *buf, int len, int *err) { if (target_xfer_partial_p ()) - return target_xfer_partial (target_stack, TARGET_OBJECT_MEMORY, NULL, - NULL, buf, memaddr, len); + { + int retval = target_xfer_partial (target_stack, TARGET_OBJECT_MEMORY, + NULL, NULL, buf, memaddr, len); + + if (retval == -1) + *err = errno; + else + *err = 0; + + return retval; + } else return target_xfer_memory_partial (memaddr, buf, len, 1, err); }