Changeset: 0db23ac1d990 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0db23ac1d990
Modified Files:
        MonetDB/src/gdk/gdk_bat.mx
        MonetDB5/src/mal/mal_function.mx
        MonetDB5/src/mal/mal_instruction.mx
        MonetDB5/src/mal/mal_profiler.mx
Branch: default
Log Message:

Merge from Jun2010 branch: Hardening: check for allocation failures and stuff 
like that.


diffs (91 lines):

diff -r f35835c337d4 -r 0db23ac1d990 MonetDB/src/gdk/gdk_bat.mx
--- a/MonetDB/src/gdk/gdk_bat.mx        Mon Jul 05 12:29:45 2010 +0200
+++ b/MonetDB/src/gdk/gdk_bat.mx        Mon Jul 05 12:31:17 2010 +0200
@@ -102,6 +102,8 @@
 @c
        BATstore *bs = (BATstore *) GDKzalloc(sizeof(BATstore));
 
+       if (bs == NULL)
+               return NULL;
 @-
 assert needed in the kernel to get symbol eprintf resolved.
 Else modules using assert fail to load.
diff -r f35835c337d4 -r 0db23ac1d990 MonetDB5/src/mal/mal_box.mx
--- a/MonetDB5/src/mal/mal_box.mx       Mon Jul 05 12:29:45 2010 +0200
+++ b/MonetDB5/src/mal/mal_box.mx       Mon Jul 05 12:31:17 2010 +0200
@@ -599,12 +599,13 @@
        int i;
 
        b = BATnew(TYPE_int, TYPE_str, (BUN) MAXSPACES);
+       if (b == NULL)
+               throw(MAL, "box.getBoxNames", MAL_MALLOC_FAIL);
        for (i = 0; i < topbox; i++)
                if (malbox[i] != NULL) {
                        BUNins(b, &i, malbox[i]->name, FALSE);
                }
-       BBPincref(*bid = b->batCacheid, TRUE);
-       BBPunfix(*bid);
+       BBPkeepref(*bid = b->batCacheid);
        return MAL_SUCCEED;
 }
 
diff -r f35835c337d4 -r 0db23ac1d990 MonetDB5/src/mal/mal_function.mx
--- a/MonetDB5/src/mal/mal_function.mx  Mon Jul 05 12:29:45 2010 +0200
+++ b/MonetDB5/src/mal/mal_function.mx  Mon Jul 05 12:31:17 2010 +0200
@@ -115,7 +115,11 @@
        InstrPtr p;
 
        s = newSymbol(nme,kind);
+       if (s == NULL)
+               return NULL;
        p = newInstruction(NULL,kind);
+       if (p == NULL)
+               return NULL;
        setModuleId(p, mod);  
        setFunctionId(p, nme);  
        setDestVar(p, newVariable(s->def,GDKstrdup(nme),TYPE_any));
@@ -125,6 +129,8 @@
 InstrPtr newCall(Module scope, str fcnname, int kind){
        InstrPtr p;
        p= newInstruction(NULL,kind);
+       if (p == NULL)
+               return NULL;
        setModuleScope(p, scope);
        setFunctionId(p, putName(fcnname,strlen(fcnname)));
        return p;
diff -r f35835c337d4 -r 0db23ac1d990 MonetDB5/src/mal/mal_instruction.mx
--- a/MonetDB5/src/mal/mal_instruction.mx       Mon Jul 05 12:29:45 2010 +0200
+++ b/MonetDB5/src/mal/mal_instruction.mx       Mon Jul 05 12:31:17 2010 +0200
@@ -600,7 +600,7 @@
        }
        cur = (Symbol) GDKzalloc(sizeof(SymRecord));
        if (cur == NULL) {
-               GDKerror("@1:"MAL_MALLOC_FAIL);
+               GDKerror("newSymbol:"MAL_MALLOC_FAIL);
                return NULL;
        }
        cur->name = putName(nme,strlen(nme));
@@ -990,6 +990,8 @@
        }
        if (p == NULL) {
                p = GDKzalloc(MAXARG * sizeof(p->maxarg) + sizeof(InstrRecord));
+               if (p == NULL)
+                       return NULL;
                p->maxarg = MAXARG;
        }
        p->typechk = TYPE_UNKNOWN;
diff -r f35835c337d4 -r 0db23ac1d990 MonetDB5/src/mal/mal_profiler.mx
--- a/MonetDB5/src/mal/mal_profiler.mx  Mon Jul 05 12:29:45 2010 +0200
+++ b/MonetDB5/src/mal/mal_profiler.mx  Mon Jul 05 12:31:17 2010 +0200
@@ -1033,10 +1033,10 @@
        }
 
        b = BATnew(TYPE_void, tt, 1 << 16);
-       BATseqbase(b, 0);
        if (b == NULL)
                return NULL;
 
+       BATseqbase(b, 0);
        BATkey(b, TRUE);
        BBPrename(b->batCacheid, buf);
        BATmode(b, PERSISTENT);
_______________________________________________
Checkin-list mailing list
Checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to