summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Jacobowitz <dan@debian.org>2006-06-01 15:46:41 +0000
committerDaniel Jacobowitz <dan@debian.org>2006-06-01 15:46:41 +0000
commitc5ef555c1d176091b62e2d343f89ec05678164ab (patch)
treef778409dec1f6857c4e296d517c9bb45d0d81752
parent8154b17aef108c000217e426a772861242c48462 (diff)
downloadgdb-c5ef555c1d176091b62e2d343f89ec05678164ab.tar.gz
* gdb/remote.c (remote_hostio_parse_result): Check for strtol
errors.
-rw-r--r--ChangeLog.csl5
-rw-r--r--gdb/remote.c6
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;
}