diff options
| author | Tristan Riehs <tristan.riehs@inria.fr> | 2025-11-17 09:43:29 +0100 |
|---|---|---|
| committer | Tristan Riehs <tristan.riehs@inria.fr> | 2025-11-17 09:43:29 +0100 |
| commit | eb608118efa20e8f3eb1ba73f03b04f060eb0efd (patch) | |
| tree | 1f410b40c5af394333b11c0880e06d310ff9c681 /src | |
| parent | 8fdc971154a54fb283915f546fa07fa92087fdc4 (diff) | |
Fix SQL query length asserts
These assert do not check for memory errors -- with strncat and snprintf
called with proper parameters there should not be any -- but for SQL
query truncation.
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.c | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -435,12 +435,12 @@ static void ftag_query_date(sqlite3 *db, char *sql, int max_len, int need_and_keyword = 0; strncat(sql, "\t(SELECT id,canonical_name,full_name FROM files", max_len - strlen(sql)); - assert(strlen(sql) <= max_len); + assert(strlen(sql) < max_len); if (before_date != 0) { memset(buf, 0, sizeof(buf)); snprintf(buf, sizeof(buf)-1, " WHERE date < %ld", before_date); strncat(sql, buf, max_len - strlen(sql)); - assert(strlen(sql) <= max_len); + assert(strlen(sql) < max_len); need_and_keyword = 1; } if (after_date != 0) { @@ -451,7 +451,7 @@ static void ftag_query_date(sqlite3 *db, char *sql, int max_len, memset(buf, 0, sizeof(buf)); snprintf(buf, sizeof(buf)-1, " date > %ld", after_date); strncat(sql, buf, max_len - strlen(sql)); - assert(strlen(sql) <= max_len); + assert(strlen(sql) < max_len); } strncat(sql, ")\n", max_len - strlen(sql)); } @@ -468,7 +468,7 @@ static void ftag_query_join(sqlite3 *db, char *sql, int max_len, } char *prefix = "\t(SELECT id,canonical_name,full_name FROM file_tags JOIN\n"; strncat(sql, prefix, max_len - strlen(sql)); - assert(strlen(sql) <= max_len); + assert(strlen(sql) < max_len); ftag_query_join(db, sql, max_len, tags, tag_count-1, before_date, after_date); int tag_id = get_id_by_col(db, "tags", "name", tags[tag_count-1]); @@ -477,7 +477,7 @@ static void ftag_query_join(sqlite3 *db, char *sql, int max_len, snprintf(suffix, sizeof(suffix)-1, "\t\tON id = file\n\t\tWHERE tag = %d)\n", tag_id); strncat(sql, suffix, max_len - strlen(sql)); - assert(strlen(sql) <= max_len); + assert(strlen(sql) < max_len); } static void ftag_query(int argc, char **argv) |
