diff options
author | Sebastian Pipping <sebastian@pipping.org> | 2020-08-17 23:17:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-17 23:17:39 +0200 |
commit | c092d40c300c6d219cb3b111932a824022265370 (patch) | |
tree | 793e0596a9128c5a2c40254cd80ca77cf852b78a | |
parent | 990e3d07eaa127007f9d304a9b4c6ffadc61b1fe (diff) | |
parent | 81ae3e7208262aab1e175ffd22c24b4036770a65 (diff) | |
download | libexpat-git-c092d40c300c6d219cb3b111932a824022265370.tar.gz |
Merge pull request #412 from boris-kolpackov/unsigned-overflow
Get rid of unsigned integer overflow in column calculation
-rw-r--r-- | expat/lib/xmltok_impl.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/expat/lib/xmltok_impl.c b/expat/lib/xmltok_impl.c index c209221c..06d5c908 100644 --- a/expat/lib/xmltok_impl.c +++ b/expat/lib/xmltok_impl.c @@ -1768,13 +1768,14 @@ PREFIX(updatePosition)(const ENCODING *enc, const char *ptr, const char *end, # define LEAD_CASE(n) \ case BT_LEAD##n: \ ptr += n; \ + pos->columnNumber++; \ break; LEAD_CASE(2) LEAD_CASE(3) LEAD_CASE(4) # undef LEAD_CASE case BT_LF: - pos->columnNumber = (XML_Size)-1; + pos->columnNumber = 0; pos->lineNumber++; ptr += MINBPC(enc); break; @@ -1783,13 +1784,13 @@ PREFIX(updatePosition)(const ENCODING *enc, const char *ptr, const char *end, ptr += MINBPC(enc); if (HAS_CHAR(enc, ptr, end) && BYTE_TYPE(enc, ptr) == BT_LF) ptr += MINBPC(enc); - pos->columnNumber = (XML_Size)-1; + pos->columnNumber = 0; break; default: ptr += MINBPC(enc); + pos->columnNumber++; break; } - pos->columnNumber++; } } |