Changeset: 7efdbd8d2cbc for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7efdbd8d2cbc
Modified Files:
monetdb5/modules/mal/mosaic.h
monetdb5/modules/mal/mosaic_delta.c
Branch: mosaic
Log Message:
Fix accessing non-initialized storage
diffs (42 lines):
diff --git a/monetdb5/modules/mal/mosaic.h b/monetdb5/modules/mal/mosaic.h
--- a/monetdb5/modules/mal/mosaic.h
+++ b/monetdb5/modules/mal/mosaic.h
@@ -189,13 +189,13 @@ float nextafterf(float x, float y);
// skip until you hit a candidate
#define MOSskipit()\
-if ( task->cl && task->n){\
- while( *task->cl < (oid) first)\
+if ( task->n && task->cl ){\
+ while(task->n > 0 && *task->cl < (oid) first)\
{task->cl++; task->n--;}\
- if (task->n == 0 || *task->cl > (oid) first )\
+ if (task->n <= 0 || *task->cl > (oid) first )\
continue;\
if ( *task->cl == (oid) first ){\
- task->cl++; task->n--;\
+ task->cl++; \
}\
} else if (task->cl) continue;
diff --git a/monetdb5/modules/mal/mosaic_delta.c
b/monetdb5/modules/mal/mosaic_delta.c
--- a/monetdb5/modules/mal/mosaic_delta.c
+++ b/monetdb5/modules/mal/mosaic_delta.c
@@ -710,16 +710,7 @@ MOSleftfetchjoin_delta(Client cntxt, MO
val = *(int*) (((char*) task->blk) + MosaicBlkSize);
delta = (bte*) (((char*)task->blk + MosaicBlkSize) +
sizeof(int));
for(; first < last; first++, val+= *delta, delta++){
- //MOSskipit();
-if ( task->cl && task->n){
- while( *task->cl < (oid) first)
- {task->cl++; task->n--;}
- if (task->n == 0 || *task->cl > (oid) first )
- continue;
- if ( *task->cl == (oid) first ){
- task->cl++; task->n--;
- }
-} else if (task->cl) continue;
+ MOSskipit();
*v++ = val;
task->n--;
task->cnt++;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list