summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Pipping <sebastian@pipping.org>2020-08-17 23:17:39 +0200
committerGitHub <noreply@github.com>2020-08-17 23:17:39 +0200
commitc092d40c300c6d219cb3b111932a824022265370 (patch)
tree793e0596a9128c5a2c40254cd80ca77cf852b78a
parent990e3d07eaa127007f9d304a9b4c6ffadc61b1fe (diff)
parent81ae3e7208262aab1e175ffd22c24b4036770a65 (diff)
downloadlibexpat-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.c7
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++;
}
}