Changeset: c781128c82bb for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c781128c82bb Modified Files: monetdb5/mal/mal_import.c sql/backends/monet5/sql_scenario.c Branch: Jul2017 Log Message:
merged diffs (76 lines): diff --git a/monetdb5/mal/mal_import.c b/monetdb5/mal/mal_import.c --- a/monetdb5/mal/mal_import.c +++ b/monetdb5/mal/mal_import.c @@ -193,19 +193,31 @@ malInclude(Client c, str name, int listi (void) p; { size_t mal_init_len = strlen(mal_init_inline); - buffer* mal_init_buf = buffer_create(mal_init_len); - stream* mal_init_stream = buffer_rastream(mal_init_buf, name); + buffer* mal_init_buf; + stream* mal_init_stream; + + if ((mal_init_buf = GDKmalloc(sizeof(buffer))) == NULL) + throw(MAL, "malInclude", MAL_MALLOC_FAIL); + if ((mal_init_stream = buffer_rastream(mal_init_buf, name)) == NULL) { + GDKfree(mal_init_buf); + throw(MAL, "malInclude", MAL_MALLOC_FAIL); + } buffer_init(mal_init_buf, mal_init_inline, mal_init_len); c->srcFile = name; c->yycur = 0; c->bak = NULL; - c->fdin = bstream_create(mal_init_stream, mal_init_len); + if ((c->fdin = bstream_create(mal_init_stream, mal_init_len)) == NULL) { + mnstr_destroy(mal_init_stream); + GDKfree(mal_init_buf); + throw(MAL, "malInclude", MAL_MALLOC_FAIL); + } bstream_next(c->fdin); parseMAL(c, c->curprg, 1); free(mal_init_buf); free(mal_init_stream); free(c->fdin); c->fdin = NULL; + GDKfree(mal_init_buf); } #else if ((filename = malResolveFile(name)) != NULL) { 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 @@ -509,18 +509,28 @@ SQLinitClient(Client c) maybeupgrade = 0; { size_t createdb_len = strlen(createdb_inline); - buffer* createdb_buf = buffer_create(createdb_len); - stream* createdb_stream = buffer_rastream(createdb_buf, "createdb.sql"); - bstream* createdb_bstream = bstream_create(createdb_stream, createdb_len); + buffer* createdb_buf; + stream* createdb_stream; + bstream* createdb_bstream; + if ((createdb_buf = GDKmalloc(sizeof(buffer))) == NULL) + throw(MAL, "createdb", MAL_MALLOC_FAIL); buffer_init(createdb_buf, createdb_inline, createdb_len); + if ((createdb_stream = buffer_rastream(createdb_buf, "createdb.sql")) == NULL) { + GDKfree(createdb_buf); + throw(MAL, "createdb", MAL_MALLOC_FAIL); + } + if ((createdb_bstream = bstream_create(createdb_stream, createdb_len)) == NULL) { + mnstr_destroy(createdb_stream); + GDKfree(createdb_buf); + throw(MAL, "createdb", MAL_MALLOC_FAIL); + } if (bstream_next(createdb_bstream) >= 0) msg = SQLstatementIntern(c, &createdb_bstream->buf, "sql.init", TRUE, FALSE, NULL); else msg = createException(MAL, "createdb", "could not load inlined createdb script"); - free(createdb_buf); - free(createdb_stream); - free(createdb_bstream); + bstream_destroy(createdb_bstream); + GDKfree(createdb_buf); if (m->sa) sa_destroy(m->sa); m->sa = NULL; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list