This is an automated email from the ASF dual-hosted git repository.

jsorel pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git


The following commit(s) were added to refs/heads/geoapi-4.0 by this push:
     new 6b1e88b480 Fix integer overflow in DBF header when fields have large 
length constraints
6b1e88b480 is described below

commit 6b1e88b4805ba52a82e6e8f4eae8a3e89df1b00c
Author: jsorel <johann.so...@geomatys.com>
AuthorDate: Mon Aug 12 15:46:42 2024 +0200

    Fix integer overflow in DBF header when fields have large length constraints
---
 .../main/org/apache/sis/storage/shapefile/dbf/DBFHeader.java           | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git 
a/incubator/src/org.apache.sis.storage.shapefile/main/org/apache/sis/storage/shapefile/dbf/DBFHeader.java
 
b/incubator/src/org.apache.sis.storage.shapefile/main/org/apache/sis/storage/shapefile/dbf/DBFHeader.java
index 8c0bca0aa0..fd80fa55b3 100644
--- 
a/incubator/src/org.apache.sis.storage.shapefile/main/org/apache/sis/storage/shapefile/dbf/DBFHeader.java
+++ 
b/incubator/src/org.apache.sis.storage.shapefile/main/org/apache/sis/storage/shapefile/dbf/DBFHeader.java
@@ -82,7 +82,8 @@ public final class DBFHeader {
         headerSize = 32 + FIELD_SIZE * fields.length + 1;
         recordSize = 1; //record state tag
         for (DBFField field : fields) {
-            recordSize += field.fieldLength;
+            //ensure we do not overflow because of very large incorrect field 
length.
+            recordSize = Math.addExact(recordSize, field.fieldLength);
         }
     }
 

Reply via email to