Changeset: e0d45a4f0d50 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e0d45a4f0d50 Modified Files: clients/odbc/driver/SQLColumnPrivileges.c clients/odbc/driver/SQLColumns.c clients/odbc/driver/SQLPrepare.c clients/odbc/driver/SQLPrimaryKeys.c clients/odbc/driver/SQLProcedures.c clients/odbc/driver/SQLSpecialColumns.c clients/odbc/driver/SQLStatistics.c clients/odbc/driver/SQLTablePrivileges.c geom/monetdb5/geom.c Branch: Jan2014 Log Message:
Fixed some errors that were found by Coverity. diffs (177 lines): diff --git a/clients/odbc/driver/SQLColumnPrivileges.c b/clients/odbc/driver/SQLColumnPrivileges.c --- a/clients/odbc/driver/SQLColumnPrivileges.c +++ b/clients/odbc/driver/SQLColumnPrivileges.c @@ -234,6 +234,7 @@ SQLColumnPrivileges_(ODBCStmt *stmt, return rc; nomem: + /* note that query must be NULL when we get here */ if (cat) free(cat); if (sch) @@ -242,8 +243,6 @@ SQLColumnPrivileges_(ODBCStmt *stmt, free(tab); if (col) free(col); - if (query) - free(query); /* Memory allocation error */ addStmtError(stmt, "HY001", NULL, 0); return SQL_ERROR; diff --git a/clients/odbc/driver/SQLColumns.c b/clients/odbc/driver/SQLColumns.c --- a/clients/odbc/driver/SQLColumns.c +++ b/clients/odbc/driver/SQLColumns.c @@ -531,6 +531,7 @@ SQLColumns_(ODBCStmt *stmt, return rc; nomem: + /* note that query must be NULL when we get here */ if (cat) free(cat); if (sch) @@ -539,8 +540,6 @@ SQLColumns_(ODBCStmt *stmt, free(tab); if (col) free(col); - if (query) - free(query); /* Memory allocation error */ addStmtError(stmt, "HY001", NULL, 0); return SQL_ERROR; diff --git a/clients/odbc/driver/SQLPrepare.c b/clients/odbc/driver/SQLPrepare.c --- a/clients/odbc/driver/SQLPrepare.c +++ b/clients/odbc/driver/SQLPrepare.c @@ -178,8 +178,9 @@ SQLPrepare_(ODBCStmt *stmt, if (rec->sql_desc_schema_name) { /* base table name and base column * name exist if there is a schema - * name */ - rec->sql_desc_base_table_name = (SQLCHAR *) strdup((char *) rec->sql_desc_table_name); + * name; the extra check is for static + * code analyzers and robustness */ + rec->sql_desc_base_table_name = rec->sql_desc_table_name ? (SQLCHAR *) strdup((char *) rec->sql_desc_table_name) : NULL; rec->sql_desc_base_column_name = (SQLCHAR *) strdup((char *) rec->sql_desc_name); } else { rec->sql_desc_base_table_name = NULL; diff --git a/clients/odbc/driver/SQLPrimaryKeys.c b/clients/odbc/driver/SQLPrimaryKeys.c --- a/clients/odbc/driver/SQLPrimaryKeys.c +++ b/clients/odbc/driver/SQLPrimaryKeys.c @@ -191,14 +191,13 @@ SQLPrimaryKeys_(ODBCStmt *stmt, return rc; nomem: + /* note that query must be NULL when we get here */ if (cat) free(cat); if (sch) free(sch); if (tab) free(tab); - if (query) - free(query); /* Memory allocation error */ addStmtError(stmt, "HY001", NULL, 0); return SQL_ERROR; diff --git a/clients/odbc/driver/SQLProcedures.c b/clients/odbc/driver/SQLProcedures.c --- a/clients/odbc/driver/SQLProcedures.c +++ b/clients/odbc/driver/SQLProcedures.c @@ -192,14 +192,13 @@ SQLProcedures_(ODBCStmt *stmt, return rc; nomem: + /* note that query must be NULL when we get here */ if (cat) free(cat); if (sch) free(sch); if (pro) free(pro); - if (query) - free(query); /* Memory allocation error */ addStmtError(stmt, "HY001", NULL, 0); return SQL_ERROR; diff --git a/clients/odbc/driver/SQLSpecialColumns.c b/clients/odbc/driver/SQLSpecialColumns.c --- a/clients/odbc/driver/SQLSpecialColumns.c +++ b/clients/odbc/driver/SQLSpecialColumns.c @@ -519,6 +519,8 @@ SQLSpecialColumns_(ODBCStmt *stmt, "cast(0 as smallint) as decimal_digits, " "cast(0 as smallint) as pseudo_column " "where 0 = 1"); + if (query == NULL) + goto nomem; query_end = query + strlen(query); } @@ -532,14 +534,13 @@ SQLSpecialColumns_(ODBCStmt *stmt, return rc; nomem: + /* note that query must be NULL when we get here */ if (cat) free(cat); if (sch) free(sch); if (tab) free(tab); - if (query) - free(query); /* Memory allocation error */ addStmtError(stmt, "HY001", NULL, 0); return SQL_ERROR; diff --git a/clients/odbc/driver/SQLStatistics.c b/clients/odbc/driver/SQLStatistics.c --- a/clients/odbc/driver/SQLStatistics.c +++ b/clients/odbc/driver/SQLStatistics.c @@ -273,14 +273,13 @@ SQLStatistics_(ODBCStmt *stmt, return rc; nomem: + /* note that query must be NULL when we get here */ if (cat) free(cat); if (sch) free(sch); if (tab) free(tab); - if (query) - free(query); /* Memory allocation error */ addStmtError(stmt, "HY001", NULL, 0); return SQL_ERROR; diff --git a/clients/odbc/driver/SQLTablePrivileges.c b/clients/odbc/driver/SQLTablePrivileges.c --- a/clients/odbc/driver/SQLTablePrivileges.c +++ b/clients/odbc/driver/SQLTablePrivileges.c @@ -209,14 +209,13 @@ SQLTablePrivileges_(ODBCStmt *stmt, return rc; nomem: + /* note that query must be NULL when we get here */ if (cat) free(cat); if (sch) free(sch); if (tab) free(tab); - if (query) - free(query); /* Memory allocation error */ addStmtError(stmt, "HY001", NULL, 0); return SQL_ERROR; diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c --- a/geom/monetdb5/geom.c +++ b/geom/monetdb5/geom.c @@ -781,10 +781,13 @@ wkbcreatepoint_bat(int *out, int *ix, in for (i = 0, o = BUNlast(bo); i < BATcount(bx); i++, o++) { str err = NULL; if ((err = wkbcreatepoint(&p, &x[i], &y[i])) != MAL_SUCCEED) { + str msg; BBPreleaseref(bx->batCacheid); BBPreleaseref(by->batCacheid); BBPreleaseref(bo->batCacheid); - throw(MAL, "geom.point", "%s", err); + msg = createException(MAL, "geom.point", "%s", err); + GDKfree(err); + return msg; } tfastins_nocheck(bo, o, p, Tsize(bo)); GDKfree(p); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list