diff options
author | Daniel Jacobowitz <dan@debian.org> | 2006-06-01 15:46:41 +0000 |
---|---|---|
committer | Daniel Jacobowitz <dan@debian.org> | 2006-06-01 15:46:41 +0000 |
commit | c5ef555c1d176091b62e2d343f89ec05678164ab (patch) | |
tree | f778409dec1f6857c4e296d517c9bb45d0d81752 | |
parent | 8154b17aef108c000217e426a772861242c48462 (diff) | |
download | gdb-c5ef555c1d176091b62e2d343f89ec05678164ab.tar.gz |
* gdb/remote.c (remote_hostio_parse_result): Check for strtol
errors.
-rw-r--r-- | ChangeLog.csl | 5 | ||||
-rw-r--r-- | gdb/remote.c | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog.csl b/ChangeLog.csl index 1087f4c9d85..727868fa789 100644 --- a/ChangeLog.csl +++ b/ChangeLog.csl @@ -1,5 +1,10 @@ 2006-06-01 Daniel Jacobowitz <dan@codesourcery.com> + * gdb/remote.c (remote_hostio_parse_result): Check for strtol + errors. + +2006-06-01 Daniel Jacobowitz <dan@codesourcery.com> + * gdb/doc/gdb.texinfo (Host I/O Packets): Mention explicit negative signs. diff --git a/gdb/remote.c b/gdb/remote.c index 15954c015da..65ada04215d 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -6116,15 +6116,17 @@ remote_hostio_parse_result (char *buffer, int *retcode, if (buffer[0] != 'F') return -1; + errno = 0; *retcode = strtol (&buffer[1], &p, 16); - if (p == &buffer[1]) + if (errno != 0 || p == &buffer[1]) return -1; /* Check for ",errno". */ if (*p == ',') { + errno = 0; *remote_errno = strtol (p + 1, &p2, 16); - if (p + 1 == p2) + if (errno != 0 || p + 1 == p2) return -1; p = p2; } |