diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-10-24 10:20:52 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2017-10-24 15:28:01 +0200 |
commit | 3a4eab26cd8d7fdd6ed5bb16107da40e11866041 (patch) | |
tree | e56f6a477e10759313308233a26602a04d0d4f60 /filter | |
parent | 0667441b71912534552c0abdf0032283aa31cae3 (diff) |
ofz#3742 Integer-overflow
Change-Id: Ibb8441df04643dd52111342e6d2c2659033838bb
Reviewed-on: https://gerrit.libreoffice.org/43741
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'filter')
-rw-r--r-- | filter/source/graphicfilter/idxf/dxfgrprd.cxx | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/filter/source/graphicfilter/idxf/dxfgrprd.cxx b/filter/source/graphicfilter/idxf/dxfgrprd.cxx index a6c02a408c7c..a7b4f5e58b83 100644 --- a/filter/source/graphicfilter/idxf/dxfgrprd.cxx +++ b/filter/source/graphicfilter/idxf/dxfgrprd.cxx @@ -178,15 +178,13 @@ long DXFGroupReader::ReadI() return 0; } - long res = 0, nv = 1; + OStringBuffer aNumber; if (*p == '-') { - nv=-1; - p++; + aNumber.append(*p++); } while ((p != end) && *p >= '0' && *p <= '9') { - res=res*10+static_cast<long>(*p-'0'); - p++; + aNumber.append(*p++); } while ((p != end) && (*p==0x20)) p++; @@ -195,7 +193,7 @@ long DXFGroupReader::ReadI() return 0; } - return res*nv; + return aNumber.toString().toInt32(); } double DXFGroupReader::ReadF() |