diff options
-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; } |