diff options
author | June McEnroe <june@causal.agency> | 2020-08-01 22:25:16 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-08-01 22:31:38 -0400 |
commit | 7343f1c40eafa3f1696c34eeda57ff5a416520d6 (patch) | |
tree | a7bbe11366dae904746377d363d19faa772f1e5e | |
parent | Don't bother with --sysconfdir (diff) | |
download | litterbox-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.c | 11 |
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) { |