]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: mailbox_verify_*name() - Add data stack frames
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 21 Sep 2021 14:48:33 +0000 (17:48 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Wed, 22 Sep 2021 11:11:23 +0000 (11:11 +0000)
This function can eat up quite a lot of data stack.

src/lib-storage/mail-storage.c

index 60dc65ba199a4b7b78356c66df3a55704d1a42ec..3b92602ce43be18285a78bf45c99da7342772b0c 100644 (file)
@@ -1233,7 +1233,7 @@ mailbox_verify_name_prefix(struct mail_namespace *ns, const char **vnamep,
        return TRUE;
 }
 
-int mailbox_verify_name(struct mailbox *box)
+static int mailbox_verify_name_int(struct mailbox *box)
 {
        struct mail_namespace *ns = box->list->ns;
        const char *error, *vname = box->vname;
@@ -1289,7 +1289,16 @@ int mailbox_verify_name(struct mailbox *box)
        return 0;
 }
 
-static int mailbox_verify_existing_name(struct mailbox *box)
+int mailbox_verify_name(struct mailbox *box)
+{
+       int ret;
+       T_BEGIN {
+               ret = mailbox_verify_name_int(box);
+       } T_END;
+       return ret;
+}
+
+static int mailbox_verify_existing_name_int(struct mailbox *box)
 {
        const char *path;
 
@@ -1317,6 +1326,15 @@ static int mailbox_verify_existing_name(struct mailbox *box)
        return 0;
 }
 
+static int mailbox_verify_existing_name(struct mailbox *box)
+{
+       int ret;
+       T_BEGIN {
+               ret = mailbox_verify_existing_name_int(box);
+       } T_END;
+       return ret;
+}
+
 static bool mailbox_name_has_control_chars(const char *name)
 {
        const char *p;