diff options
author | Carl Worth <cworth@cworth.org> | 2009-10-24 22:10:03 -0700 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2009-10-24 22:10:03 -0700 |
commit | 0bc73af96c48952cba29116f0c99e8ba3f9e7ef6 (patch) | |
tree | 68a2d34a076406404ed5574e39944774e6ab3464 | |
parent | f281f4b677e56242c18628683dcd4533906f7551 (diff) |
Fix timestamp generation to avoid overflowing the term limit
The previous code was only correct as long as the timestamp prefix
was only a single character. But with the recent change to a
multi-character prefix, this broke. So fix it now.
-rw-r--r-- | database.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/database.cc b/database.cc index c470cc3..3d96727 100644 --- a/database.cc +++ b/database.cc @@ -542,11 +542,12 @@ find_timestamp_document (notmuch_database_t *notmuch, const char *db_key, static char * timestamp_db_key (const char *key) { - if (strlen (key) + 1 > NOTMUCH_TERM_MAX) { + int term_len = strlen (_find_prefix ("timestamp")) + strlen (key); + + if (term_len > NOTMUCH_TERM_MAX) return notmuch_sha1_of_string (key); - } else { + else return strdup (key); - } } notmuch_status_t |