From b05f2ebad03b47c388e8d59a12e7c3aa0a8ff738 Mon Sep 17 00:00:00 2001 From: "Steffen \"Daode\" Nurpmeso" Date: Tue, 23 Oct 2012 14:14:15 +0200 Subject: [PATCH] cache.c: use file_expand(), handle errors --- cache.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/cache.c b/cache.c index 4288cfec..bd6adcba 100644 --- a/cache.c +++ b/cache.c @@ -115,9 +115,9 @@ encname(struct mailbox *mp, const char *name, int same, const char *box) snprintf(res, resz, "%s%s%s", mp->mb_cache_directory, *ename ? "/" : "", ename); } else { - if ((cachedir = value("imap-cache")) == NULL) + if ((cachedir = value("imap-cache")) == NULL || + (cachedir = file_expand(cachedir)) == NULL) return NULL; - cachedir = file_expand(cachedir); eaccount = strenc(mp->mb_imap_account); if (box) emailbox = strenc(box); @@ -412,9 +412,9 @@ clean(struct mailbox *mp, struct cw *cw) struct dirent *dp; FILE *fp = NULL; - if ((cachedir = value("imap-cache")) == NULL) + if ((cachedir = value("imap-cache")) == NULL || + (cachedir = file_expand(cachedir)) == NULL) return NULL; - cachedir = file_expand(cachedir); eaccount = strenc(mp->mb_imap_account); if (asccasecmp(mp->mb_imap_mailbox, "INBOX")) emailbox = strenc(mp->mb_imap_mailbox); @@ -610,9 +610,9 @@ cache_list(struct mailbox *mp, const char *base, int strip, FILE *fp) const char *cp, *bp, *sp; int namesz; - if ((cachedir = value("imap-cache")) == NULL) + if ((cachedir = value("imap-cache")) == NULL || + (cachedir = file_expand(cachedir)) == NULL) return STOP; - cachedir = file_expand(cachedir); eaccount = strenc(mp->mb_imap_account); name = salloc(namesz = strlen(cachedir) + strlen(eaccount) + 2); snprintf(name, namesz, "%s/%s", cachedir, eaccount); @@ -747,9 +747,9 @@ cache_dequeue(struct mailbox *mp) DIR *dirfd; struct dirent *dp; - if ((cachedir = value("imap-cache")) == NULL) + if ((cachedir = value("imap-cache")) == NULL || + (cachedir = file_expand(cachedir)) == NULL) return OKAY; - cachedir = file_expand(cachedir); eaccount = strenc(mp->mb_imap_account); buf = salloc(bufsz = strlen(cachedir) + strlen(eaccount) + 2); snprintf(buf, bufsz, "%s/%s", cachedir, eaccount); -- 2.11.4.GIT