From: Danny Smith Date: Wed, 12 Oct 2005 00:16:12 +0000 (+0000) Subject: 2005-10-11 Danny Smith X-Git-Tag: gdb-csl-arm-20051020-branchpoint~56 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0851f04365fb9d46d1e10808d5f55619ccfc7aed;p=platform%2Fupstream%2Fbinutils.git 2005-10-11 Danny Smith * rclex.l (handle quotes): Stop parsing hex notation escaped chars after the first two digits, --- diff --git a/binutils/ChangeLog b/binutils/ChangeLog index aeaa659..fdc26bb 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,8 @@ +2005-10-11 Danny Smith + + * rclex.l (handle quotes): Stop parsing hex notation escaped + chars after the first two digits, + 2005-10-11 Nick Clifton PR binutils/1437 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');