mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-26 05:02:18 +00:00
0399911cbf
Obtained from: http://git.cyrusimap.org/cyrus-imapd/commit/?h=cyrus-imapd-2.4&id=1661683d453ea444aae5832b4a2cb7fd54489672
32 lines
1.2 KiB
C
32 lines
1.2 KiB
C
Index: imap/statuscache_db.c
|
|
diff -u -p imap/statuscache_db.c.orig imap/statuscache_db.c
|
|
--- imap/statuscache_db.c.orig 2012-12-02 04:57:54.000000000 +0900
|
|
+++ imap/statuscache_db.c 2012-12-10 13:17:11.621360294 +0900
|
|
@@ -150,9 +150,11 @@ static char *statuscache_buildkey(const
|
|
|
|
/* Build statuscache key */
|
|
len = strlcpy(key, mailboxname, sizeof(key));
|
|
+ /* double % is a safe separator, it can't exist in a mailboxname */
|
|
key[len++] = '%';
|
|
key[len++] = '%';
|
|
- len += strlcpy(key + len, userid, sizeof(key) - len);
|
|
+ if (userid)
|
|
+ len += strlcpy(key + len, userid, sizeof(key) - len);
|
|
|
|
*keylen = len;
|
|
|
|
@@ -410,11 +412,9 @@ int statuscache_invalidate(const char *m
|
|
drock.db = statuscachedb;
|
|
drock.tid = NULL;
|
|
|
|
- key = statuscache_buildkey(mboxname, "", &keylen);
|
|
+ key = statuscache_buildkey(mboxname, /*userid*/NULL, &keylen);
|
|
|
|
- /* strip off the second NULL that buildkey added, so we match
|
|
- * the entires for all users */
|
|
- r = DB->foreach(drock.db, key, keylen - 1, NULL, delete_cb,
|
|
+ r = DB->foreach(drock.db, key, keylen, NULL, delete_cb,
|
|
&drock, &drock.tid);
|
|
if (r != CYRUSDB_OK) {
|
|
syslog(LOG_ERR, "DBERROR: error invalidating: %s (%s)",
|