sqlite3_str *s;
sqlite3_stmt *st;
- char *find = "select printf('%s-%s-%d', package, version, release) as pkgid, stage, hash from scripts where true";
- char *pkgidwhere = " and printf('%s-%s-%d', package, version, release) = %Q";
+ char *find = "select printf('%%s-%%s-%%d', package, version, release) as pkgid, stage, hash from scripts where true";
+ char *pkgidwhere = " and printf('%%%%s-%%%%s-%%%%d', package, version, release) = %Q";
char *stagewhere = " and stage = %Q";
if (!zpm || !cb) {
sqlite3_str_appendf(s, stagewhere, stage);
}
- sql = sqlite3_str_value(s);
+ sql = sqlite3_str_finish(s);
if (!sql) {
- sqlite3_str_finish(s);
zpm->error = 1;
if (pkgid) {
free(pkgid);
}
st = zpm_dbquery(zpm, sql);
+
+ if (!st) {
+ zpm->error = 1;
+ sqlite3_free(sql);
+ return 0;
+ }
+
int rv, cbrv = 0;
while ((rv = sqlite3_step(st)) == SQLITE_ROW) {
if (cb) {
free(pkgid);
}
+ sqlite3_free(sql);
return cbrv;
}