From: Julian Andres Klode Date: Fri, 14 May 2010 03:39:52 +0000 (-0700) Subject: sqlite3: Fix wrappers to not assign to invalid output parameter. X-Git-Tag: 0.9.1~81 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=176f57c85e553de21983470353ccdb4aaf41fc4f;p=thirdparty%2Fvala.git sqlite3: Fix wrappers to not assign to invalid output parameter. Check that the output parameter is not null before assigning to it. Without this, passing null as errmsg results in segfaults since the function dereferences a null pointer. Fixes bug 61845. --- diff --git a/vapi/sqlite3.vapi b/vapi/sqlite3.vapi index d44db089d..edff3734f 100644 --- a/vapi/sqlite3.vapi +++ b/vapi/sqlite3.vapi @@ -34,10 +34,10 @@ namespace Sqlite { public int exec (string sql, Callback? sqlite3_callback = null, out string errmsg = null) { unowned string sqlite_errmsg; var ec = this._exec (sql, sqlite3_callback, out sqlite_errmsg); - if (sqlite_errmsg != null) { + if (&errmsg != null) { errmsg = sqlite_errmsg; - Sqlite.Memory.free ((void*) sqlite_errmsg); } + Sqlite.Memory.free ((void*) sqlite_errmsg); return ec; } public int extended_result_codes (int onoff); @@ -63,10 +63,10 @@ namespace Sqlite { } Sqlite.Database.free_table (sqlite_resultp); - if (sqlite_errmsg != null) { + if (&errmsg != null) { errmsg = sqlite_errmsg; - Sqlite.Memory.free ((void*) sqlite_errmsg); } + Sqlite.Memory.free ((void*) sqlite_errmsg); return ec; } public static int open (string filename, out Database db);