diff options
| author | David Sommerseth <dazo@users.sourceforge.net> | 2009-09-07 21:10:22 +0200 |
|---|---|---|
| committer | David Sommerseth <dazo@users.sourceforge.net> | 2009-09-07 21:10:22 +0200 |
| commit | 66b29488a7ed5909564ed03b3e89cd0d008df09e (patch) | |
| tree | 2ef1558a3c54b37b59a775f4734cb467cac183cb /database | |
| parent | 428d4fd45100c5c9b799f2fb127775b8b2382ecc (diff) | |
| download | eurephia-66b29488a7ed5909564ed03b3e89cd0d008df09e.tar.gz eurephia-66b29488a7ed5909564ed03b3e89cd0d008df09e.tar.xz eurephia-66b29488a7ed5909564ed03b3e89cd0d008df09e.zip | |
Moved all malloc() operations over to a calloc wrapper, malloc_nullsafe()
This also improves debugging as well, if debug logging is enabled and log level is >= 40.
Diffstat (limited to 'database')
| -rw-r--r-- | database/eurephiadb-driver_template.c | 6 | ||||
| -rw-r--r-- | database/eurephiadb_mapping.c | 3 | ||||
| -rw-r--r-- | database/sqlite/edb-sqlite.c | 3 | ||||
| -rw-r--r-- | database/sqlite/sqlite.c | 16 |
4 files changed, 11 insertions, 17 deletions
diff --git a/database/eurephiadb-driver_template.c b/database/eurephiadb-driver_template.c index be31ad3..5b0008b 100644 --- a/database/eurephiadb-driver_template.c +++ b/database/eurephiadb-driver_template.c @@ -134,8 +134,10 @@ int eDBconnect(eurephiaCTX *ctx, const int argc, const char **argv) DEBUG(ctx, 20, "Function call: eDBconnect(ctx, %i, '...')", argc, dbame); // Connect to the database - dbc = (eDBconn *) malloc(sizeof(eDBconn)+2); - memset(dbc, 1, sizeof(eDBconn)+2); + dbc = (eDBconn *) malloc_nullsafe(ctx, sizeof(eDBconn)+2); + if( !dbc ) { + return 0; + } dbc->dbname = strdup(argv[1]); eurephia_log(ctx, LOG_INFO, 1, "Opening database '%s'", dbc->dbname); diff --git a/database/eurephiadb_mapping.c b/database/eurephiadb_mapping.c index 998f894..fbb4584 100644 --- a/database/eurephiadb_mapping.c +++ b/database/eurephiadb_mapping.c @@ -120,9 +120,8 @@ eDBfieldMap *eDBgetTableFieldMapping(int table) { // Copy the mapping into a pointer chain for( i = 0; srcmap[i].field_id != FIELD_NONE; i++ ) { - ptr = (eDBfieldMap *) malloc(sizeof(eDBfieldMap)+2); + ptr = (eDBfieldMap *) malloc_nullsafe(NULL, sizeof(eDBfieldMap)+2); assert(ptr != NULL); - memset(ptr, 0, sizeof(eDBfieldMap)+2); ptr->tableid = srcmap[i].tableid; ptr->table_alias = NULL; diff --git a/database/sqlite/edb-sqlite.c b/database/sqlite/edb-sqlite.c index 4a4e3fc..c1aa1c0 100644 --- a/database/sqlite/edb-sqlite.c +++ b/database/sqlite/edb-sqlite.c @@ -115,8 +115,7 @@ int eDBconnect(eurephiaCTX *ctx, const int argc, const char **argv) } // Connect to the database - dbc = (eDBconn *) malloc(sizeof(eDBconn)+2); - memset(dbc, 1, sizeof(eDBconn)+2); + dbc = (eDBconn *) malloc_nullsafe(ctx, sizeof(eDBconn)+2); dbc->dbname = strdup(argv[0]); eurephia_log(ctx, LOG_INFO, 1, "Opening database '%s'", dbc->dbname); diff --git a/database/sqlite/sqlite.c b/database/sqlite/sqlite.c index 9148616..5faa0b7 100644 --- a/database/sqlite/sqlite.c +++ b/database/sqlite/sqlite.c @@ -108,8 +108,7 @@ static int _cb_parse_result(void *NotUsed, int argc, char **argv, char **colName // If no header records are found, populate this structure if( glob_results->headerrec == NULL ) { for( i = 0; i < argc; i++ ) { - hrec = (_sqlite_header *) malloc(sizeof(_sqlite_header)+2); - memset(hrec, 0, sizeof(_sqlite_header)+2); + hrec = (_sqlite_header *) malloc_nullsafe(NULL, sizeof(_sqlite_header)+2); hrec->fieldid = i; hrec->name = strdup_nullsafe(colName[i]); @@ -134,8 +133,7 @@ static int _cb_parse_result(void *NotUsed, int argc, char **argv, char **colName // Add all data fields for this record into a tuple structure hrec = glob_results->headerrec; for( i = 0; i < argc; i++ ) { - new_frec = (_sqlite_tuples *) malloc(sizeof(_sqlite_tuples)+2); - memset(new_frec, 0, sizeof(_sqlite_tuples)+2); + new_frec = (_sqlite_tuples *) malloc_nullsafe(NULL, sizeof(_sqlite_tuples)+2); // trec contains the head of a new record set with fields if( trec == NULL ) { @@ -221,8 +219,7 @@ dbresult *sqlite_query(eurephiaCTX *ctx, char *fmt, ... ) { // prepare a new (global) result set ... // do not delete the old ones, since we return this "global" // result as a new individual result - glob_results = malloc(sizeof(dbresult)+2); - memset(glob_results, 0, sizeof(dbresult)+2); + glob_results = malloc_nullsafe(ctx, sizeof(dbresult)+2); glob_results->num_tuples = 0; // prepare SQL query @@ -566,11 +563,8 @@ int main() { mwStatistics(3); #endif - ctx = malloc(sizeof(eurephiaCTX)+2); - memset(ctx, 0, sizeof(eurephiaCTX)+2); - - ctx->dbc = malloc(sizeof(eDBconn)+2); - memset(ctx->dbc, 0, sizeof(eDBconn)+2); + ctx = malloc_nullsafe(NULL, sizeof(eurephiaCTX)+2); + ctx->dbc = malloc_nullsafe(NULL, sizeof(eDBconn)+2); rc = sqlite3_open("./vpnaccess", (void *) &ctx->dbc->dbhandle); if( rc ) { |
