Changeset: 3d13c05bec56 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/3d13c05bec56
Modified Files:
geom/monetdb5/geom.c
geom/monetdb5/geom_atoms.c
monetdb5/modules/kernel/aggr.c
Branch: Dec2025
Log Message:
Add overflow tests.
diffs (51 lines):
diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c
--- a/geom/monetdb5/geom.c
+++ b/geom/monetdb5/geom.c
@@ -2385,6 +2385,11 @@ geos2wkb(allocator *ma, wkb **geomWKB, s
return NULL;
assert(wkbLen <= GDK_int_max);
+ if (wkbLen > (size_t) GDK_int_max) {
+ GEOSFree_r(geoshandle, w);
+ GDKerror("geos2wkb: wkb length too large\n");
+ return NULL;
+ }
*geomWKB = ma_alloc(ma, wkb_size(wkbLen));
//If malloc failed create a NULL wkb
@@ -2564,6 +2569,8 @@ wkbFromBinaryWithBuffer(allocator *ma, w
wkbLength = strLength / 2;
assert(wkbLength <= GDK_int_max);
+ if (wkbLength > (size_t) GDK_int_max)
+ throw(MAL, "geom.FromBinary", SQLSTATE(38000) "Geos length too
large");
if (!*geomWKB || *len < wkb_size(wkbLength)) {
*len = wkb_size(wkbLength);
diff --git a/geom/monetdb5/geom_atoms.c b/geom/monetdb5/geom_atoms.c
--- a/geom/monetdb5/geom_atoms.c
+++ b/geom/monetdb5/geom_atoms.c
@@ -211,9 +211,9 @@ wkbWRITE(const void *A, stream *s, size_
(void) cnt;
assert(cnt == 1);
- if (!mnstr_writeInt(s, len)) /* 64bit: check for overflow */
+ if (!mnstr_writeInt(s, len))
return GDK_FAIL;
- if (!mnstr_writeInt(s, srid)) /* 64bit: check for overflow */
+ if (!mnstr_writeInt(s, srid))
return GDK_FAIL;
if (len > 0 && /* 64bit: check for overflow */
mnstr_write(s, (char *) a->data, len, 1) < 0)
diff --git a/monetdb5/modules/kernel/aggr.c b/monetdb5/modules/kernel/aggr.c
--- a/monetdb5/modules/kernel/aggr.c
+++ b/monetdb5/modules/kernel/aggr.c
@@ -75,7 +75,7 @@ AGGRgrouped_bat_or_val(bat *retval1, bat
}
BBPunfix(q->batCacheid);
} else {
- qvalue = *(quantile_val);
+ qvalue = *quantile_val;
}
if (qvalue < 0 || qvalue > 1) {
BBPreclaim(b);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]