Changeset: 34747c9d31c1 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=34747c9d31c1 Modified Files: gdk/gdk_logger.c gdk/gdk_value.c geom/monetdb5/geom.c monetdb5/mal/mal_builder.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/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/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_sequence.c tools/mserver/mserver5.c Branch: default Log Message:
Added markers to invocations of GDKmalloc and friends where return value is not checked. (//FIXME unchecked_malloc ...) diffs (truncated from 803 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 @@ -1745,7 +1745,7 @@ dumpPointsPoint(BAT *idBAT, BAT *geomBAT str err = MAL_SUCCEED; (*lvl)++; - + // FIXME unchecked_malloc GDKmalloc can return NULL newPath = GDKmalloc(pathLength + lvlDigitsNum + 1); sprintf(newPath, "%s%u", path, *lvl); @@ -1805,7 +1805,7 @@ dumpPointsPolygon(BAT *idBAT, BAT *geomB throw(MAL, "geom.DumpPoints", "GEOSGetExteriorRing failed"); (*lvl)++; - + // FIXME unchecked_malloc GDKmalloc can return NULL newPath = GDKmalloc(pathLength + lvlDigitsNum + extraLength + 1); sprintf(newPath, "%s%u%s", path, *lvl, extraStr); @@ -1858,6 +1858,7 @@ dumpPointsMultiGeometry(BAT *idBAT, BAT multiGeometry = GEOSGetGeometryN(geosGeometry, i); lvl++; + // FIXME unchecked_malloc GDKmalloc can return NULL newPath = GDKmalloc(pathLength + lvlDigitsNum + extraLength + 1); sprintf(newPath, "%s%u%s", path, lvl, extraStr); @@ -2165,6 +2166,7 @@ wkbFROMSTR_withSRID(char *geomWKT, int * if (strncasecmp(geomWKT, polyhedralSurface, strlen(polyhedralSurface)) == 0) { size_t sizeOfInfo = strlen(geomWKT) - strlen(polyhedralSurface); geomWKT_original = geomWKT; + // FIXME unchecked_malloc GDKmalloc can return NULL geomWKT = GDKmalloc(sizeOfInfo + strlen(multiPolygon) + 1); strcpy(geomWKT, multiPolygon); memcpy(geomWKT + strlen(multiPolygon), &geomWKT_original[strlen(polyhedralSurface)], sizeOfInfo); @@ -2219,7 +2221,7 @@ wkbaFROMSTR_withSRID(char *fromStr, int //read the number of items from the beginning of the string memcpy(&items, fromStr, sizeof(int)); skipBytes += sizeof(int); - + // FIXME unchecked_malloc GDKmalloc can return NULL *toArray = GDKmalloc(wkba_size(items)); for (i = 0; i < items; i++) { @@ -5056,6 +5058,7 @@ wkbTOSTR(char **geomWKT, int *len, wkb * if (*len < (int) dstStrLen + 1) { *len = (int) dstStrLen + 1; GDKfree(*geomWKT); + // FIXME unchecked_malloc GDKmalloc can return NULL *geomWKT = GDKmalloc(*len); } snprintf(*geomWKT, *len, "\"%s\"", wkt); @@ -5221,6 +5224,7 @@ mbrTOSTR(char **dst, int *len, mbr *atom if (*len < (int) dstStrLen + 1 || *dst == NULL) { GDKfree(*dst); + // FIXME unchecked_malloc GDKmalloc can return NULL *dst = GDKmalloc(*len = (int) dstStrLen + 1); } @@ -5262,6 +5266,7 @@ mbrFROMSTR(char *src, int *len, mbr **at if (*len < (int) sizeof(mbr)) { if (*atom) GDKfree(*atom); + // FIXME unchecked_malloc GDKmalloc can return NULL *atom = GDKmalloc(*len = sizeof(mbr)); } if (nil) { @@ -5388,6 +5393,7 @@ wkbaTOSTR(char **toStr, int *len, wkba * size_t dataSize; //, skipBytes=0; char **partialStrs; char *nilStr = "nil"; + // FIXME unchecked_malloc GDKmalloc can return NULL char *toStrPtr = NULL, *itemsNumStr = GDKmalloc((itemsNumDigits + 1) * sizeof(char)); sprintf(itemsNumStr, "%d", items); @@ -5407,6 +5413,7 @@ wkbaTOSTR(char **toStr, int *len, wkba * GDKfree(partialStrs); if (*len < 4 || *toStr == NULL) { GDKfree(*toStr); + // FIXME unchecked_malloc GDKmalloc can return NULL *toStr = GDKmalloc(*len = 4); } strcpy(*toStr, "nil"); @@ -5771,6 +5778,7 @@ wkbContains_point_bat(bat *out, wkb **a, /*Lets get the polygon */ token = strtok_r(token, ")", &saveptr1); + // FIXME unchecked_malloc GDKmalloc can return NULL vert_x = GDKmalloc(POLY_NUM_VERT * sizeof(double)); vert_y = GDKmalloc(POLY_NUM_VERT * sizeof(double)); 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 @@ -520,6 +520,7 @@ pushNil(MalBlkPtr mb, InstrPtr q, int tp cst.vtype=TYPE_void; cst.val.oval= oid_nil; } else if (ATOMextern(tpe)) { + // FIXME unchecked_malloc ATOMnil can return NULL ptr p = ATOMnil(tpe); VALset(&cst, tpe, p); } else { 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 @@ -577,6 +577,8 @@ BLOBblob_blob(blob **d, blob **s) blob *b; if( (*s)->nitems == ~(size_t) 0){ + // FIXME unchecked_malloc BLOBnull can return NULL + *d= BLOBnull(); } else { *d= b= (blob *) GDKmalloc(len); 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,7 +752,7 @@ INETabbrev(str *retval, const inet *val) * &: 00 00 00 00 * all zero, thus no bits on the right side of the mask */ - + // FIXME unchecked_malloc GDKmalloc can return NULL ip = GDKmalloc(sizeof(char) * 19); if (msk > 24) { 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 @@ -173,6 +173,7 @@ UUIDgenerateUuid(uuid **retval) int i = 0, r = 0; if (*retval == NULL) + // FIXME unchecked_malloc GDKmalloc can return NULL *retval = GDKmalloc(UUID_SIZE); u = *retval; #ifdef HAVE_UUID 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 @@ -668,6 +668,7 @@ XMLtoString(str *s, int *len, xml src) l = (int) strlen(src) + 1; if (l >= *len) { GDKfree(*s); + // FIXME unchecked_malloc GDKmalloc can return NULL *s = (str) GDKmalloc(l); } strcpy(*s, src); diff --git a/monetdb5/modules/mal/calc.c b/monetdb5/modules/mal/calc.c --- a/monetdb5/modules/mal/calc.c +++ b/monetdb5/modules/mal/calc.c @@ -632,6 +632,7 @@ CALCswitchbit(Client cntxt, MalBlkPtr mb p = getArgReference(stk, pci, 3); } if (ATOMextern(t1)) { + // FIXME unchecked_malloc ATOMdup could return NULL *(ptr **) retval = ATOMdup(t1, *(ptr**)p); } else if (t1 == TYPE_void) { memcpy(retval, p, sizeof(oid)); diff --git a/monetdb5/modules/mal/tablet.c b/monetdb5/modules/mal/tablet.c --- a/monetdb5/modules/mal/tablet.c +++ b/monetdb5/modules/mal/tablet.c @@ -903,6 +903,7 @@ SQLinsert_val(READERtask *task, int col, if (task->rowerror) { if (s) { size_t slen = mystrlen(s); + // FIXME unchecked_malloc GDKmalloc can return NULL, and asserts are not the way to check the result char *scpy = GDKmalloc(slen + 1); assert(scpy); if (scpy) diff --git a/monetdb5/modules/mal/txtsim.c b/monetdb5/modules/mal/txtsim.c --- a/monetdb5/modules/mal/txtsim.c +++ b/monetdb5/modules/mal/txtsim.c @@ -27,6 +27,7 @@ if (b) {\ if (ATOMextern(t)) {\ *(ptr*) res = (ptr) ATOMnil(t);\ + // FIXME unchecked_malloc ATOMnil can return NULL \ } else {\ memcpy(res, ATOMnilptr(t), ATOMsize(t));\ }\ @@ -308,7 +309,7 @@ CMDqgramnormalize(str *res, str *Input) char c, last = ' '; RETURN_NIL_IF(strNil(input), TYPE_str); - + // FIXME unchecked_malloc GDKmalloc can return NULL *res = (str) GDKmalloc(sizeof(char) * (strlen(input) + 1)); /* normalized strings are never longer than original */ for (i = 0; input[i]; i++) { diff --git a/monetdb5/optimizer/opt_mergetable.c b/monetdb5/optimizer/opt_mergetable.c --- a/monetdb5/optimizer/opt_mergetable.c +++ b/monetdb5/optimizer/opt_mergetable.c @@ -396,7 +396,7 @@ mat_apply2(matlist_t *ml, MalBlkPtr mb, { int k, is_select = isSelect(p); InstrPtr *r = NULL; - + // FIXME unchecked_malloc GDKmalloc can return NULL r = (InstrPtr*) GDKmalloc(sizeof(InstrPtr)* p->retc); for(k=0; k < p->retc; k++) { r[k] = newInstruction(mb, matRef, packRef); @@ -435,7 +435,7 @@ mat_apply3(MalBlkPtr mb, InstrPtr p, mat { int k; InstrPtr *r = NULL; - + // FIXME unchecked_malloc GDKmalloc can return NULL r = (InstrPtr*) GDKmalloc(sizeof(InstrPtr)* p->retc); for(k=0; k < p->retc; k++) { r[k] = newInstruction(mb, matRef, packRef); diff --git a/sql/backends/monet5/UDF/pyapi/emit.c b/sql/backends/monet5/UDF/pyapi/emit.c --- a/sql/backends/monet5/UDF/pyapi/emit.c +++ b/sql/backends/monet5/UDF/pyapi/emit.c @@ -113,6 +113,7 @@ PyEmit_Emit(PyEmitObject *self, PyObject if (potential_size > self->maxcols) { // allocate space for new columns (if any new columns show up) sql_emit_col *old = self->cols; + // FIXME unchecked_malloc GDKmalloc can return NULL self->cols = GDKmalloc(sizeof(sql_emit_col) * potential_size); if (old) { memcpy(self->cols, old, sizeof(sql_emit_col) * self->maxcols); @@ -162,6 +163,7 @@ PyEmit_Emit(PyEmitObject *self, PyObject if (self->nvals > 0) { // insert NULL values up until the current entry for (ai = 0; ai < self->nvals; ai++) { + // FIXME unchecked_malloc ATOMnil can return NULL BUNappend(self->cols[self->ncols].b, ATOMnil(self->cols[self->ncols].b->ttype), 0); } self->cols[i].b->tnil = 1; diff --git a/sql/backends/monet5/mal_backend.c b/sql/backends/monet5/mal_backend.c --- a/sql/backends/monet5/mal_backend.c +++ b/sql/backends/monet5/mal_backend.c @@ -27,6 +27,7 @@ backend_reset(backend *b) backend * backend_create(mvc *m, Client c) { + // FIXME unchecked_malloc MNEW can return NULL backend *b = MNEW(backend); b->console = isAdministrator(c); diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c --- a/sql/backends/monet5/rel_bin.c +++ b/sql/backends/monet5/rel_bin.c @@ -1031,7 +1031,7 @@ rel_parse_value(backend *be, char *query m->caching = 0; m->emode = emode; - + // FIXME unchecked_malloc GDKmalloc can return NULL b = (buffer*)GDKmalloc(sizeof(buffer)); n = GDKmalloc(len + 1 + 1); strncpy(n, query, len); diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c --- a/sql/backends/monet5/sql.c +++ b/sql/backends/monet5/sql.c @@ -1849,15 +1849,19 @@ mvc_export_table_wrap( Client cntxt, Mal } l = strlen((char *) (*T)); + // FIXME unchecked_malloc GDKmalloc can return NULL GDKstrFromStr(tsep = GDKmalloc(l + 1), *T, l); l = 0; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list