]> git.pld-linux.org Git - packages/dovecot.git/blame - upstream-fixes.patch
icu rebuild
[packages/dovecot.git] / upstream-fixes.patch
CommitLineData
aedd63db
AM
1From 98f709deac9381721b93d896c27576dbff1f711c Mon Sep 17 00:00:00 2001
2From: Stephan Bosch <stephan.bosch@open-xchange.com>
3Date: Fri, 12 Nov 2021 10:43:16 +0100
4Subject: [PATCH 1/2] lib-storage: mail-duplicate - Fix panic occurring when
5 user has no configured home directory.
6
7Panic was:
8
9Panic: file imem.c: line 65 (i_strconcat): assertion failed: (str1 != NULL)
10---
11 src/lib-storage/mail-duplicate.c | 9 ++++++---
12 1 file changed, 6 insertions(+), 3 deletions(-)
13
14diff --git a/src/lib-storage/mail-duplicate.c b/src/lib-storage/mail-duplicate.c
15index ff4fa5630b..407fe4aec9 100644
16--- a/src/lib-storage/mail-duplicate.c
17+++ b/src/lib-storage/mail-duplicate.c
18@@ -722,14 +722,17 @@ mail_duplicate_db_init(struct mail_user *user, const char *name)
19
20 e_debug(db->event, "Initialize");
21
22+ db->user = user;
23+
24 if (mail_user_get_home(user, &home) <= 0) {
25 e_error(db->event, "User %s doesn't have home dir set, "
26 "disabling duplicate database", user->username);
27+ return db;
28 }
29
30- db->user = user;
31- db->path = home == NULL ? NULL :
32- i_strconcat(home, "/.dovecot.", name, NULL);
33+ i_assert(home != NULL);
34+
35+ db->path = i_strconcat(home, "/.dovecot.", name, NULL);
36 db->dotlock_set = default_mail_duplicate_dotlock_set;
37
38 lock_dir = mail_user_get_volatile_dir(user);
39
40From d36d2c595a12378b597f1fc82cd7b47cbbadb2e1 Mon Sep 17 00:00:00 2001
41From: Stephan Bosch <stephan.bosch@open-xchange.com>
42Date: Fri, 12 Nov 2021 11:16:47 +0100
43Subject: [PATCH 2/2] lib-storage: mail-duplicate - Fix segfault occurring when
44 user has no configured home directory
45
46Occurred only when a duplicate DB transaction was created.
47---
48 src/lib-storage/mail-duplicate.c | 12 +++++++-----
49 1 file changed, 7 insertions(+), 5 deletions(-)
50
51diff --git a/src/lib-storage/mail-duplicate.c b/src/lib-storage/mail-duplicate.c
52index 407fe4aec9..7a78caa7c7 100644
53--- a/src/lib-storage/mail-duplicate.c
54+++ b/src/lib-storage/mail-duplicate.c
55@@ -491,13 +491,15 @@ mail_duplicate_transaction_free(struct mail_duplicate_transaction **_trans)
56 i_assert(trans->db->transaction_count > 0);
57 trans->db->transaction_count--;
58
59- iter = hash_table_iterate_init(trans->hash);
60- while (hash_table_iterate(iter, trans->hash, &d, &d))
61- mail_duplicate_unlock(trans, d);
62- hash_table_iterate_deinit(&iter);
63+ if (hash_table_is_created(trans->hash)) {
64+ iter = hash_table_iterate_init(trans->hash);
65+ while (hash_table_iterate(iter, trans->hash, &d, &d))
66+ mail_duplicate_unlock(trans, d);
67+ hash_table_iterate_deinit(&iter);
68+ hash_table_destroy(&trans->hash);
69+ }
70 i_assert(trans->id_lock_count == 0);
71
72- hash_table_destroy(&trans->hash);
73 event_unref(&trans->event);
74 pool_unref(&trans->pool);
75 }
This page took 0.467913 seconds and 4 git commands to generate.