overflow: check sprintf() and snprintf()
[smatch.git] / smatch_db.c
blobc67f23cd2a2a5dd951043da0da24020047690f9a
1 /*
2 * smatch/smatch_db.c
4 * Copyright (C) 2010 Dan Carpenter.
6 * Licensed under the Open Software License version 1.1
8 */
10 #include <string.h>
11 #include <sqlite3.h>
12 #include "smatch.h"
13 #include "smatch_extra.h"
15 static sqlite3 *db;
17 void sql_exec(int (*callback)(void*, int, char**, char**), const char *sql)
19 char *err = NULL;
20 int rc;
22 if (option_no_db || !db)
23 return;
25 rc = sqlite3_exec(db, sql, callback, 0, &err);
26 if (rc != SQLITE_OK) {
27 fprintf(stderr, "SQL error #2: %s\n", err);
28 exit(1);
32 void open_smatch_db(void)
34 #ifdef SQLITE_OPEN_READONLY
35 int rc;
37 if (option_no_db)
38 return;
40 rc = sqlite3_open_v2("smatch_db.sqlite", &db, SQLITE_OPEN_READONLY, NULL);
41 if (rc != SQLITE_OK)
42 #endif
43 option_no_db = 1;