Changeset: ffe6cee3aa4a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ffe6cee3aa4a
Modified Files:
monetdb5/mal/mal_parser.c
Branch: default
Log Message:
protect more failing constant definitions
diffs (43 lines):
diff --git a/monetdb5/mal/mal_parser.c b/monetdb5/mal/mal_parser.c
--- a/monetdb5/mal/mal_parser.c
+++ b/monetdb5/mal/mal_parser.c
@@ -876,12 +876,16 @@ term(Client cntxt, MalBlkPtr curBlk, Ins
setVarUDFtype(curBlk, cstidx);
} else {
cstidx = defConstant(curBlk, tpe, &cst);
+ if (cstidx < 0)
+ return 3;
setPolymorphic(*curInstr, tpe, FALSE);
setVarUDFtype(curBlk, cstidx);
free = 0;
}
} else if (cst.vtype != getVarType(curBlk, cstidx)) {
cstidx = defConstant(curBlk, cst.vtype, &cst);
+ if (cstidx < 0)
+ return 3;
setPolymorphic(*curInstr, cst.vtype, FALSE);
free = 0;
}
@@ -897,6 +901,8 @@ term(Client cntxt, MalBlkPtr curBlk, Ins
if (tpe < 0)
return 3;
cstidx = defConstant(curBlk, tpe, &cst);
+ if (cstidx < 0)
+ return 3;
setPolymorphic(*curInstr, tpe, FALSE);
if (flag)
setVarUDFtype(curBlk, cstidx);
@@ -1809,7 +1815,12 @@ parseMAL(Client cntxt, Symbol curPrg, in
freeInstruction(curInstr);
continue;
}
- getArg(curInstr, 0) = defConstant(curBlk,
TYPE_str, &cst);
+ int cstidx = defConstant(curBlk, TYPE_str,
&cst);
+ if (cstidx < 0) {
+ freeInstruction(curInstr);
+ continue;
+ }
+ getArg(curInstr, 0) = cstidx;
clrVarConstant(curBlk, getArg(curInstr, 0));
setVarDisabled(curBlk, getArg(curInstr, 0));
pushInstruction(curBlk, curInstr);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list