about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-08-01 22:25:16 -0400
committerJune McEnroe <june@causal.agency>2020-08-01 22:31:38 -0400
commit7343f1c40eafa3f1696c34eeda57ff5a416520d6 (patch)
treea7bbe11366dae904746377d363d19faa772f1e5e
parentDon't bother with --sysconfdir (diff)
downloadlitterbox-7343f1c40eafa3f1696c34eeda57ff5a416520d6.tar.gz
litterbox-7343f1c40eafa3f1696c34eeda57ff5a416520d6.zip
Check return value of asprintf
On GNU, asprintf leaves the destination pointer undefined on failure.
Clowns.
-rw-r--r--scoop.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/scoop.c b/scoop.c
index c71e99d..c2a49b8 100644
--- a/scoop.c
+++ b/scoop.c
@@ -535,10 +535,10 @@ int main(int argc, char *argv[]) {
 		err(EX_UNAVAILABLE, "sqlite3");
 	}
 
-	sqlite3_stmt *stmt;
+	int len;
 	char *query = NULL;
 	if (sort) {
-		asprintf(
+		len = asprintf(
 			&query,
 			SQL(
 				WITH results AS (%s %s %s)
@@ -548,10 +548,11 @@ int main(int argc, char *argv[]) {
 			select, from, where, (group ? "network, context," : "")
 		);
 	} else {
-		asprintf(&query, "%s %s %s;", select, from, where);
+		len = asprintf(&query, "%s %s %s;", select, from, where);
 	}
-	if (!query) err(EX_OSERR, "asprintf");
-	stmt = dbPrepare(query);
+	if (len < 0) err(EX_OSERR, "asprintf");
+
+	sqlite3_stmt *stmt = dbPrepare(query);
 	free(query);
 
 	for (int i = 0; i < n; ++i) {