Changeset: 97e2203a8d2b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=97e2203a8d2b
Modified Files:
        gdk/gdk_logger.c
        gdk/gdk_value.c
        geom/monetdb5/geom.c
        monetdb5/mal/mal_builder.c
        monetdb5/mal/mal_instruction.c
        monetdb5/mal/mal_module.c
        monetdb5/mal/mal_stack.c
        monetdb5/modules/atoms/blob.c
        monetdb5/modules/atoms/inet.c
        monetdb5/modules/atoms/uuid.c
        monetdb5/modules/atoms/xml.c
        monetdb5/modules/mal/calc.c
        monetdb5/modules/mal/manual.c
        monetdb5/modules/mal/tablet.c
        monetdb5/modules/mal/txtsim.c
        monetdb5/optimizer/opt_mergetable.c
        sql/backends/monet5/UDF/pyapi/emit.c
        sql/backends/monet5/mal_backend.c
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_execute.c
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_statement.c
        sql/backends/monet5/sql_statistics.c
        sql/backends/monet5/sql_upgrades.c
        sql/backends/monet5/vaults/fits/fits.c
        sql/backends/monet5/vaults/netcdf/netcdf.c
        sql/backends/monet5/vaults/shp/shp.c
        sql/common/sql_keyword.c
        sql/common/sql_mem.c
        sql/common/sql_string.c
        sql/server/rel_updates.c
        sql/server/sql_atom.c
        sql/server/sql_mvc.c
        sql/server/sql_qc.c
        sql/server/sql_scan.c
        sql/storage/bat/bat_table.c
        sql/storage/bat/res_table.c
        sql/storage/store.c
        sql/storage/store_dependency.c
        sql/storage/store_sequence.c
        sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out.32bit
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-hge/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade/Tests/check.stable.out
        sql/test/emptydb-upgrade/Tests/check.stable.out.32bit
        sql/test/emptydb-upgrade/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
        sql/test/emptydb/Tests/check.SQL.py
        sql/test/emptydb/Tests/check.stable.out
        sql/test/emptydb/Tests/check.stable.out.32bit
        sql/test/emptydb/Tests/check.stable.out.int128
        sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade/Tests/upgrade.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
        tools/mserver/mserver5.c
Branch: data-vaults
Log Message:

Merge with default


diffs (truncated from 1793 to 300 lines):

diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -345,7 +345,10 @@ log_read_updates(logger *lg, trans *tr, 
                if (tt < TYPE_str)
                        tv = lg->buf;
                else if (tt > TYPE_str)
+                       // FIXME unchecked_malloc ATOMnil can return NULL
+
                        tv = ATOMnil(tt);
+
                assert(l->nr <= (lng) BUN_MAX);
                if (l->flag == LOG_UPDATE) {
                        uid = COLnew(0, ht, (BUN) l->nr, PERSISTENT);
@@ -372,6 +375,8 @@ log_read_updates(logger *lg, trans *tr, 
                        }
                } else {
                        void *(*rh) (ptr, stream *, size_t) = ht == TYPE_void ? 
BATatoms[TYPE_oid].atomRead : BATatoms[ht].atomRead;
+                       // FIXME unchecked_malloc ATOMnil can return NULL
+
                        void *hv = ATOMnil(ht);
 
                        for (; l->nr > 0; l->nr--) {
diff --git a/gdk/gdk_value.c b/gdk/gdk_value.c
--- a/gdk/gdk_value.c
+++ b/gdk/gdk_value.c
@@ -143,6 +143,7 @@ VALcopy(ValPtr d, const ValRecord *s)
        if (!ATOMextern(s->vtype)) {
                *d = *s;
        } else if (s->val.pval == 0) {
+               // FIXME unchecked_malloc ATOMnil can return NULL
                d->val.pval = ATOMnil(s->vtype);
                d->vtype = s->vtype;
        } else if (s->vtype == TYPE_str) {
diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c
--- a/geom/monetdb5/geom.c
+++ b/geom/monetdb5/geom.c
@@ -12,6 +12,7 @@
  */
 
 #include "geom.h"
+#include "mal_exception.h"
 
 int TYPE_mbr;
 
@@ -1745,8 +1746,9 @@ dumpPointsPoint(BAT *idBAT, BAT *geomBAT
        str err = MAL_SUCCEED;
 
        (*lvl)++;
-
        newPath = GDKmalloc(pathLength + lvlDigitsNum + 1);
+       if( newPath == NULL)
+               throw(MAL, "geom.PointsPoint", MAL_MALLOC_FAIL);
        sprintf(newPath, "%s%u", path, *lvl);
 
        if (BUNappend(idBAT, newPath, TRUE) != GDK_SUCCEED ||
@@ -1805,8 +1807,9 @@ dumpPointsPolygon(BAT *idBAT, BAT *geomB
                throw(MAL, "geom.DumpPoints", "GEOSGetExteriorRing failed");
 
        (*lvl)++;
-
        newPath = GDKmalloc(pathLength + lvlDigitsNum + extraLength + 1);
+       if( newPath == NULL)
+               throw(MAL,"geom.dumpPointsPolygon",MAL_MALLOC_FAIL);
        sprintf(newPath, "%s%u%s", path, *lvl, extraStr);
 
        //get the points in the exterior ring
@@ -1859,6 +1862,8 @@ dumpPointsMultiGeometry(BAT *idBAT, BAT 
                lvl++;
 
                newPath = GDKmalloc(pathLength + lvlDigitsNum + extraLength + 
1);
+               if( newPath == NULL)
+                       throw(MAL,"geom.dumpPointsGeometry",MAL_MALLOC_FAIL);
                sprintf(newPath, "%s%u%s", path, lvl, extraStr);
 
                //*secondLevel = 0;
@@ -2166,6 +2171,8 @@ wkbFROMSTR_withSRID(char *geomWKT, int *
                size_t sizeOfInfo = strlen(geomWKT) - strlen(polyhedralSurface);
                geomWKT_original = geomWKT;
                geomWKT = GDKmalloc(sizeOfInfo + strlen(multiPolygon) + 1);
+               if( geomWKT == NULL)
+                       throw(MAL,"geomWKT",MAL_MALLOC_FAIL);
                strcpy(geomWKT, multiPolygon);
                memcpy(geomWKT + strlen(multiPolygon), 
&geomWKT_original[strlen(polyhedralSurface)], sizeOfInfo);
                geomWKT[sizeOfInfo + strlen(multiPolygon)] = '\0';
@@ -2219,8 +2226,11 @@ wkbaFROMSTR_withSRID(char *fromStr, int 
        //read the number of items from the beginning of the string
        memcpy(&items, fromStr, sizeof(int));
        skipBytes += sizeof(int);
-
        *toArray = GDKmalloc(wkba_size(items));
+       if( *toArray == NULL){
+               GDKerror("FROMSTR_withSRID" MAL_MALLOC_FAIL);
+               return 0;
+       }
 
        for (i = 0; i < items; i++) {
                size_t parsedBytes;
@@ -5057,6 +5067,10 @@ wkbTOSTR(char **geomWKT, int *len, wkb *
                        *len = (int) dstStrLen + 1;
                        GDKfree(*geomWKT);
                        *geomWKT = GDKmalloc(*len);
+                       if( *geomWKT == NULL){
+                               GDKerror("wkbTOSTR" MAL_MALLOC_FAIL);
+                               return 0;
+                       }
                }
                snprintf(*geomWKT, *len, "\"%s\"", wkt);
                GEOSFree(wkt);
@@ -5064,6 +5078,10 @@ wkbTOSTR(char **geomWKT, int *len, wkb *
                if (*len < 4) {
                        GDKfree(*geomWKT);
                        *geomWKT = GDKmalloc(*len = 4);
+                       if( *geomWKT == NULL){
+                               GDKerror("wkbTOSTR" MAL_MALLOC_FAIL);
+                               return 0;
+                       }
                }
                strcpy(*geomWKT, "nil");
        }
@@ -5222,6 +5240,10 @@ mbrTOSTR(char **dst, int *len, mbr *atom
        if (*len < (int) dstStrLen + 1 || *dst == NULL) {
                GDKfree(*dst);
                *dst = GDKmalloc(*len = (int) dstStrLen + 1);
+               if( *dst == NULL){
+                       GDKerror("mbrTOSTR" MAL_MALLOC_FAIL);
+                       return 0;
+               }
        }
 
        if (dstStrLen > 3)
@@ -5263,6 +5285,10 @@ mbrFROMSTR(char *src, int *len, mbr **at
                if (*atom)
                        GDKfree(*atom);
                *atom = GDKmalloc(*len = sizeof(mbr));
+               if( *atom == NULL){
+                       GDKerror("mbrFROMSTR" MAL_MALLOC_FAIL);
+                       return 0;
+               }
        }
        if (nil) {
                nchars = 3;
@@ -5390,6 +5416,10 @@ wkbaTOSTR(char **toStr, int *len, wkba *
        char *nilStr = "nil";
        char *toStrPtr = NULL, *itemsNumStr = GDKmalloc((itemsNumDigits + 1) * 
sizeof(char));
 
+       if( itemsNumStr == NULL){
+               GDKerror("wkbaTOSTR" MAL_MALLOC_FAIL);
+               return 0;
+       }
        sprintf(itemsNumStr, "%d", items);
        dataSize = strlen(itemsNumStr);
 
@@ -5408,6 +5438,10 @@ wkbaTOSTR(char **toStr, int *len, wkba *
                        if (*len < 4 || *toStr == NULL) {
                                GDKfree(*toStr);
                                *toStr = GDKmalloc(*len = 4);
+                               if( *toStr == NULL){
+                                       GDKerror("wkbaTOSTR" MAL_MALLOC_FAIL);
+                                       return 0;
+                               }
                        }
                        strcpy(*toStr, "nil");
                        return 3;
@@ -5772,7 +5806,16 @@ wkbContains_point_bat(bat *out, wkb **a,
        /*Lets get the polygon */
        token = strtok_r(token, ")", &saveptr1);
        vert_x = GDKmalloc(POLY_NUM_VERT * sizeof(double));
+       if ( vert_x == NULL){
+               GDKfree(geom_str);
+               throw(MAL,"wkbContains_point_bat", MAL_MALLOC_FAIL);
+       }
        vert_y = GDKmalloc(POLY_NUM_VERT * sizeof(double));
+       if ( vert_y == NULL){
+               GDKfree(geom_str);
+               GDKfree(vert_x);
+               throw(MAL,"wkbContains_point_bat", MAL_MALLOC_FAIL);
+       }
 
        for (str2 = token;; str2 = NULL) {
                subtoken = strtok_r(str2, ",", &saveptr2);
diff --git a/monetdb5/mal/mal_builder.c b/monetdb5/mal/mal_builder.c
--- a/monetdb5/mal/mal_builder.c
+++ b/monetdb5/mal/mal_builder.c
@@ -521,6 +521,10 @@ pushNil(MalBlkPtr mb, InstrPtr q, int tp
                        cst.val.oval= oid_nil;
                } else if (ATOMextern(tpe)) {
                        ptr p = ATOMnil(tpe);
+                       if( p == NULL){
+                               freeInstruction(q);
+                               return NULL;
+                       }
                        VALset(&cst, tpe, p);
                } else {
                        if (VALinit(&cst, tpe, ATOMnilptr(tpe)) == NULL) {
diff --git a/monetdb5/mal/mal_instruction.c b/monetdb5/mal/mal_instruction.c
--- a/monetdb5/mal/mal_instruction.c
+++ b/monetdb5/mal/mal_instruction.c
@@ -249,13 +249,13 @@ copyMalBlk(MalBlkPtr old)
        mb->keephistory = old->keephistory;
 
        mb->var = (VarRecord *) GDKzalloc(sizeof(VarRecord) * old->vsize);
-       mb->activeClients = 1;
-
        if (mb->var == NULL) {
                GDKfree(mb);
                GDKerror("copyMalBlk:" MAL_MALLOC_FAIL);
                return NULL;
        }
+
+       mb->activeClients = 1;
        mb->vsize = old->vsize;
        mb->vtop = old->vtop;
        mb->vid = old->vid;
diff --git a/monetdb5/mal/mal_module.c b/monetdb5/mal/mal_module.c
--- a/monetdb5/mal/mal_module.c
+++ b/monetdb5/mal/mal_module.c
@@ -31,6 +31,8 @@ Module moduleIndex[MODULE_HASH_SIZE] = {
 
 static void newModuleSpace(Module scope){
        scope->space = (Symbol *) GDKzalloc(MAXSCOPE * sizeof(Symbol));
+       if( scope->space == 0)
+               GDKerror("newModuleSpace:"MAL_MALLOC_FAIL);
 }
 
 void
diff --git a/monetdb5/mal/mal_stack.c b/monetdb5/mal/mal_stack.c
--- a/monetdb5/mal/mal_stack.c
+++ b/monetdb5/mal/mal_stack.c
@@ -50,6 +50,7 @@
  */
 #include "monetdb_config.h"
 #include "mal_stack.h"
+#include "mal_exception.h"
 
 /* #define DEBUG_MAL_STACK*/
 
@@ -60,6 +61,7 @@ newGlobalStack(int size)
 
        s = (MalStkPtr) GDKzalloc(stackSize(size) + offsetof(MalStack, stk));
        if (!s) {
+               GDKerror("newGlobalStack:"MAL_MALLOC_FAIL);
                return NULL;
        }
        s->stksize = size;
diff --git a/monetdb5/modules/atoms/blob.c b/monetdb5/modules/atoms/blob.c
--- a/monetdb5/modules/atoms/blob.c
+++ b/monetdb5/modules/atoms/blob.c
@@ -578,6 +578,8 @@ BLOBblob_blob(blob **d, blob **s)
 
        if( (*s)->nitems == ~(size_t) 0){
                *d= BLOBnull();
+               if( *d == NULL)
+                       throw(MAL,"blob", MAL_MALLOC_FAIL);
        } else {
                *d= b= (blob *) GDKmalloc(len);
                if( b == NULL)
diff --git a/monetdb5/modules/atoms/inet.c b/monetdb5/modules/atoms/inet.c
--- a/monetdb5/modules/atoms/inet.c
+++ b/monetdb5/modules/atoms/inet.c
@@ -752,8 +752,9 @@ INETabbrev(str *retval, const inet *val)
                 * &:    00 00 00 00
                 * all zero, thus no bits on the right side of the mask
                 */
-
                ip = GDKmalloc(sizeof(char) * 19);
+               if( ip == NULL)
+                       throw(MAL,"inet.abbrev", MAL_MALLOC_FAIL);
 
                if (msk > 24) {
                        snprintf(ip, sizeof(char) * 19, "%d.%d.%d.%d/%d",
diff --git a/monetdb5/modules/atoms/uuid.c b/monetdb5/modules/atoms/uuid.c
--- a/monetdb5/modules/atoms/uuid.c
+++ b/monetdb5/modules/atoms/uuid.c
@@ -172,8 +172,11 @@ UUIDgenerateUuid(uuid **retval)
        uuid *u;
        int i = 0, r = 0;
 
-       if (*retval == NULL)
+       if (*retval == NULL){
                *retval = GDKmalloc(UUID_SIZE);
+               if( *retval == NULL)
+                       throw(MAL,"uuid.generate",MAL_MALLOC_FAIL);
+       }
        u = *retval;
 #ifdef HAVE_UUID
        uuid_generate(u->u);
diff --git a/monetdb5/modules/atoms/xml.c b/monetdb5/modules/atoms/xml.c
--- a/monetdb5/modules/atoms/xml.c
+++ b/monetdb5/modules/atoms/xml.c
@@ -669,6 +669,10 @@ XMLtoString(str *s, int *len, xml src)
        if (l >= *len) {
                GDKfree(*s);
                *s = (str) GDKmalloc(l);
+               if ( *s == NULL){
+                       GDKerror("XMLtoString:" MAL_MALLOC_FAIL);
+                       return -1;
+               }
        }
        strcpy(*s, src);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to