Changeset: 8801848d6f1b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8801848d6f1b
Modified Files:
gdk/gdk_cand.c
Branch: unlock
Log Message:
Check boundaries so that we don't get overflow.
diffs (32 lines):
diff --git a/gdk/gdk_cand.c b/gdk/gdk_cand.c
--- a/gdk/gdk_cand.c
+++ b/gdk/gdk_cand.c
@@ -1007,15 +1007,20 @@ canditer_sliceval_mask(struct canditer *
return NULL;
bn->tkey = true;
- lo1 -= ci->mskoff;
- hi1 -= ci->mskoff;
- for (oid o = lo1; o < hi1 && cnt1 > 0; o++) {
- if (ci->mask[o / 32] & (1U << (o % 32))) {
- if (BUNappend(bn, &(oid){o + ci->mskoff}, false) !=
GDK_SUCCEED) {
- BBPreclaim(bn);
- return NULL;
+ if (hi1 > ci->mskoff) {
+ if (lo1 < ci->mskoff)
+ lo1 = 0;
+ else
+ lo1 -= ci->mskoff;
+ hi1 -= ci->mskoff;
+ for (oid o = lo1; o < hi1 && cnt1 > 0; o++) {
+ if (ci->mask[o / 32] & (1U << (o % 32))) {
+ if (BUNappend(bn, &(oid){o + ci->mskoff},
false) != GDK_SUCCEED) {
+ BBPreclaim(bn);
+ return NULL;
+ }
+ cnt1--;
}
- cnt1--;
}
}
if (cnt2 > 0) {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list