aboutsummaryrefslogtreecommitdiff
path: root/binutils/rclex.l
diff options
context:
space:
mode:
authorDanny Smith <dannysmith@users.sourceforge.net>2005-10-12 00:16:12 +0000
committerDanny Smith <dannysmith@users.sourceforge.net>2005-10-12 00:16:12 +0000
commit0851f04365fb9d46d1e10808d5f55619ccfc7aed (patch)
tree5bb5e7b5f6f191a66332c56c61ed78295d5c19e1 /binutils/rclex.l
parent9e691ad0b4078ade4054a8a66a9937af81aed210 (diff)
downloadgdb-0851f04365fb9d46d1e10808d5f55619ccfc7aed.zip
gdb-0851f04365fb9d46d1e10808d5f55619ccfc7aed.tar.gz
gdb-0851f04365fb9d46d1e10808d5f55619ccfc7aed.tar.bz2
2005-10-11 Danny Smith <dannysmith@users.sourceforge.net>
* rclex.l (handle quotes): Stop parsing hex notation escaped chars after the first two digits,
Diffstat (limited to 'binutils/rclex.l')
-rw-r--r--binutils/rclex.l7
1 files changed, 6 insertions, 1 deletions
diff --git a/binutils/rclex.l b/binutils/rclex.l
index eb33b4a..92b1ec7 100644
--- a/binutils/rclex.l
+++ b/binutils/rclex.l
@@ -308,6 +308,7 @@ handle_quotes (const char *input, unsigned long *len)
char *ret, *s;
const char *t;
int ch;
+ int num_xdigits;
ret = get_string (strlen (input) + 1);
@@ -389,7 +390,11 @@ handle_quotes (const char *input, unsigned long *len)
case 'x':
++t;
ch = 0;
- while (1)
+ /* We only handle single byte chars here. Make sure
+ we finish an escape sequence like "/xB0ABC" after
+ the first two digits. */
+ num_xdigits = 2;
+ while (num_xdigits--)
{
if (*t >= '0' && *t <= '9')
ch = (ch << 4) | (*t - '0');