[evolution-data-server] M!55 - Add pointer checks for SQL statement arguments



commit 9bd8cc4be1eb3aca9e8e3f7340c92c3b8d645820
Author: Markus Elfring <elfring users sourceforge net>
Date:   Wed Nov 25 12:04:57 2020 +0100

    M!55 - Add pointer checks for SQL statement arguments
    
    Some functions got pointers passed for strings which should contain
    SQL statements. But they were not checked so far.
    
    Thus add NULL pointer checks so that error indications will be
    appropriately returned in such functions.
    
    Closes https://gitlab.gnome.org/GNOME/evolution-data-server/-/merge_requests/55

 src/addressbook/libedata-book/e-book-backend-sqlitedb.c | 2 ++
 src/addressbook/libedata-book/e-book-sqlite.c           | 4 ++++
 src/camel/camel-db.c                                    | 7 +++++++
 3 files changed, 13 insertions(+)
---
diff --git a/src/addressbook/libedata-book/e-book-backend-sqlitedb.c 
b/src/addressbook/libedata-book/e-book-backend-sqlitedb.c
index 5672a4190..852866a8d 100644
--- a/src/addressbook/libedata-book/e-book-backend-sqlitedb.c
+++ b/src/addressbook/libedata-book/e-book-backend-sqlitedb.c
@@ -411,6 +411,8 @@ book_backend_sql_exec (sqlite3 *db,
                        gpointer data,
                        GError **error)
 {
+       g_return_val_if_fail (stmt != NULL, FALSE);
+
        if (booksql_debug ())
                book_backend_sql_debug (db, stmt, callback, data, error);
 
diff --git a/src/addressbook/libedata-book/e-book-sqlite.c b/src/addressbook/libedata-book/e-book-sqlite.c
index 828bfe2de..72cfa7951 100644
--- a/src/addressbook/libedata-book/e-book-sqlite.c
+++ b/src/addressbook/libedata-book/e-book-sqlite.c
@@ -1137,6 +1137,8 @@ ebsql_exec (EBookSqlite *ebsql,
        gint ret = -1, retries = 0;
        gint64 t1 = 0, t2;
 
+       g_return_val_if_fail (stmt != NULL, FALSE);
+
        /* Debug output for statements and query plans */
        ebsql_exec_maybe_debug (ebsql, stmt);
 
@@ -1314,6 +1316,8 @@ ebsql_prepare_statement (EBookSqlite *ebsql,
        const gchar *stmt_tail = NULL;
        gint ret;
 
+       g_return_val_if_fail (stmt_str != NULL, NULL);
+
        ret = sqlite3_prepare_v2 (ebsql->priv->db, stmt_str, strlen (stmt_str), &stmt, &stmt_tail);
 
        if (ret != SQLITE_OK) {
diff --git a/src/camel/camel-db.c b/src/camel/camel-db.c
index 8ae4870bc..702464b9e 100644
--- a/src/camel/camel-db.c
+++ b/src/camel/camel-db.c
@@ -555,6 +555,8 @@ cdb_sql_exec (sqlite3 *db,
        gchar *errmsg = NULL;
        gint   ret = -1, retries = 0;
 
+       g_return_val_if_fail (stmt != NULL, -1);
+
        d (g_print ("Camel SQL Exec:\n%s\n", stmt));
 
        ret = sqlite3_exec (db, stmt, callback, data, &errmsg);
@@ -1080,6 +1082,7 @@ camel_db_add_to_transaction (CamelDB *cdb,
                return -1;
 
        g_return_val_if_fail (cdb_is_in_transaction (cdb), -1);
+       g_return_val_if_fail (query != NULL, -1);
 
        return (cdb_sql_exec (cdb->priv->db, query, NULL, NULL, NULL, error));
 }
@@ -1170,6 +1173,8 @@ camel_db_count_message_info (CamelDB *cdb,
 {
        gint ret = -1;
 
+       g_return_val_if_fail (query != NULL, -1);
+
        cdb_reader_lock (cdb);
 
        START (query);
@@ -1441,6 +1446,8 @@ camel_db_select (CamelDB *cdb,
        if (!cdb)
                return ret;
 
+       g_return_val_if_fail (stmt != NULL, ret);
+
        d (g_print ("\n%s:\n%s \n", G_STRFUNC, stmt));
        cdb_reader_lock (cdb);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]