From 75d09d83bb70f5ed6475e30232dfd2c5f52e21d3 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 22 Jul 2009 20:37:20 +0000 Subject: [PATCH] add some err checking to sqlite case for nonce checking git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@14322 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_sofia/sofia_glue.c | 11 ++++++++--- src/switch_core_db.c | 9 ++++++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index 306f54e7ea..67baaae2e1 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -4016,11 +4016,16 @@ char *sofia_glue_execute_sql2str(sofia_profile_t *profile, switch_mutex_t *mutex while (running < 5000) { int result = switch_core_db_step(stmt); + const unsigned char *txt; if (result == SWITCH_CORE_DB_ROW) { - if ((colcount = switch_core_db_column_count(stmt))) { - switch_copy_string(resbuf, (char *) switch_core_db_column_text(stmt, 0), len); - ret = resbuf; + if ((colcount = switch_core_db_column_count(stmt)) > 0) { + if ((txt = switch_core_db_column_text(stmt, 0))) { + switch_copy_string(resbuf, (char *) txt, len); + ret = resbuf; + } else { + goto fail; + } } break; } else if (result == SWITCH_CORE_DB_BUSY) { diff --git a/src/switch_core_db.c b/src/switch_core_db.c index 863425139e..e675569aa5 100644 --- a/src/switch_core_db.c +++ b/src/switch_core_db.c @@ -57,7 +57,14 @@ SWITCH_DECLARE(int) switch_core_db_close(switch_core_db_t *db) SWITCH_DECLARE(const unsigned char *) switch_core_db_column_text(switch_core_db_stmt_t *stmt, int iCol) { - return sqlite3_column_text(stmt, iCol); + const unsigned char *txt = sqlite3_column_text(stmt, iCol); + + if (txt && !strcasecmp((char *)txt, "(null)")) { + txt = NULL; + } + + return txt; + } SWITCH_DECLARE(const char *) switch_core_db_column_name(switch_core_db_stmt_t *stmt, int N)