diff options
author | Danny Smith <dannysmith@users.sourceforge.net> | 2005-10-12 00:16:12 +0000 |
---|---|---|
committer | Danny Smith <dannysmith@users.sourceforge.net> | 2005-10-12 00:16:12 +0000 |
commit | 0851f04365fb9d46d1e10808d5f55619ccfc7aed (patch) | |
tree | 5bb5e7b5f6f191a66332c56c61ed78295d5c19e1 /binutils/rclex.l | |
parent | 9e691ad0b4078ade4054a8a66a9937af81aed210 (diff) | |
download | gdb-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.l | 7 |
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'); |