Changeset: a1d41172ba94 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a1d41172ba94 Modified Files: gdk/gdk_value.c monetdb5/modules/mal/calc.c sql/backends/monet5/mal_backend.c sql/backends/monet5/rel_bin.c sql/backends/monet5/sql_scenario.c sql/backends/monet5/vaults/fits/fits.c sql/backends/monet5/vaults/netcdf/netcdf.c Branch: Jul2017 Log Message:
Resolved some FIXME comments. diffs (158 lines): diff --git a/gdk/gdk_value.c b/gdk/gdk_value.c --- a/gdk/gdk_value.c +++ b/gdk/gdk_value.c @@ -142,9 +142,10 @@ 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 + } else if (s->val.pval == NULL) { d->val.pval = ATOMnil(s->vtype); + if (d->val.pval == NULL) + return NULL; d->vtype = s->vtype; } else if (s->vtype == TYPE_str) { d->vtype = TYPE_str; 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,8 +632,9 @@ 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); + if (*(ptr **) retval == NULL) + throw(MAL, "ifthenelse", MAL_MALLOC_FAIL); } else if (t1 == TYPE_void) { memcpy(retval, p, sizeof(oid)); } else { 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,7 +27,6 @@ backend_reset(backend *b) backend * backend_create(mvc *m, Client c) { - // FIXME unchecked_malloc MNEW can return NULL backend *b = MNEW(backend); if( b== NULL) 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 @@ -1039,7 +1039,6 @@ 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)); if (b == 0) return sql_error(m, 02, MAL_MALLOC_FAIL); diff --git a/sql/backends/monet5/sql_scenario.c b/sql/backends/monet5/sql_scenario.c --- a/sql/backends/monet5/sql_scenario.c +++ b/sql/backends/monet5/sql_scenario.c @@ -442,11 +442,10 @@ SQLinitClient(Client c) * based on the mandatory scripts to be executed. */ if (sqlinit) { /* add sqlinit to the fdin stack */ - // FIXME unchecked_malloc GDKmalloc can return NULL buffer *b = (buffer *) GDKmalloc(sizeof(buffer)); size_t len = strlen(sqlinit); bstream *fdin; - + if( b == NULL) throw(SQL,"sql.initClient",MAL_MALLOC_FAIL); diff --git a/sql/backends/monet5/vaults/fits/fits.c b/sql/backends/monet5/vaults/fits/fits.c --- a/sql/backends/monet5/vaults/fits/fits.c +++ b/sql/backends/monet5/vaults/fits/fits.c @@ -205,17 +205,19 @@ str FITSexportTable(Client cntxt, MalBlk tbl = mvc_bind_table(m, sch, tname); if (tbl == NULL) { - msg = createException (MAL, "fits.exporttable", "Table %s is missing.\n", tname); - return msg; + throw(MAL, "fits.exporttable", "Table %s is missing.\n", tname); } set = (*tbl).columns.set; columns = list_length(set); - // FIXME unchecked_malloc GDKmalloc can return NULL colname = (str *) GDKmalloc(columns * sizeof(str)); - // FIXME unchecked_malloc GDKmalloc can return NULL tform = (str *) GDKmalloc(columns * sizeof(str)); + if (colname == NULL || tform == NULL) { + GDKfree(colname); + GDKfree(tform); + throw(MAL, "fits.exporttable", MAL_MALLOC_FAIL); + } /* fprintf(stderr,"Number of columns: %d\n", columns);*/ diff --git a/sql/backends/monet5/vaults/netcdf/netcdf.c b/sql/backends/monet5/vaults/netcdf/netcdf.c --- a/sql/backends/monet5/vaults/netcdf/netcdf.c +++ b/sql/backends/monet5/vaults/netcdf/netcdf.c @@ -612,9 +612,14 @@ NCDFloadVar(bat **dim, bat *v, int ncid, res = NULL; /* Manually create dimensions with range [0:1:dlen[i]] */ - // FIXME unchecked_malloc GDKmalloc can return NULL val_rep = (size_t *)GDKmalloc(sizeof(size_t) * vndims); grp_rep = (size_t *)GDKmalloc(sizeof(size_t) * vndims); + if (val_rep == NULL || grp_rep == NULL) { + GDKfree(dlen); + GDKfree(val_rep); + GDKfree(grp_rep); + throw(MAL, "netcdf.loadvar", MAL_MALLOC_FAIL); + } /* compute the repetition factor inside of the series (val_rep) and of series (grp_rep) */ for (i = 0; i < vndims; i++) { @@ -716,6 +721,8 @@ NCDFimportVariable(Client cntxt, MalBlkP /* compose 'create table' statement in the buffer */ dname = (char **) GDKzalloc( sizeof(char *) * vndims); + if (dname == NULL) + throw(MAL, "netcdf.importvar", MAL_MALLOC_FAIL); for (i = 0; i < vndims; i++) dname[i] = (char *) GDKzalloc(NC_MAX_NAME + 1); @@ -724,10 +731,12 @@ NCDFimportVariable(Client cntxt, MalBlkP j = snprintf(buf, BUFSIZ,"create table %s.%s( ", sch->base.name, aname); for (i = 0; i < vndims; i++){ - if ((retval = nc_inq_dim(ncid, vdims[i], dname[i], &dlen))) - return createException(MAL, "netcdf.importvar", - "Cannot read dimension %d : %s", - vdims[i], nc_strerror(retval)); + if ((retval = nc_inq_dim(ncid, vdims[i], dname[i], &dlen))) { + GDKfree(dname); + throw(MAL, "netcdf.importvar", + "Cannot read dimension %d : %s", + vdims[i], nc_strerror(retval)); + } if ( dlen <= (int) GDK_bte_max ) dimtype = "TINYINT"; @@ -748,12 +757,15 @@ NCDFimportVariable(Client cntxt, MalBlkP return msg; /* load variable data */ - // FIXME unchecked_malloc GDKmalloc can return NULL dim_bids = (bat *)GDKmalloc(sizeof(bat) * vndims); + if (dim_bids == NULL) + throw(MAL, "netcdf.importvar", MAL_MALLOC_FAIL); msg = NCDFloadVar(&dim_bids, &vbatid, ncid, varid, vtype, vndims, vdims); - if ( msg != MAL_SUCCEED ) + if ( msg != MAL_SUCCEED ) { + GDKfree(dim_bids); return msg; + } /* associate columns in the table with loaded variable data */ aname_sys = toLower(aname); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list