From dae086c92faa1fd9dac9808e840968797ddaf612 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 2 Jul 2003 17:18:48 +0000 Subject: [PATCH] fix crash when syncing multiple mailboxes over a Tunnel --- src/imap.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/imap.c b/src/imap.c index b4552f6..b75af2d 100644 --- a/src/imap.c +++ b/src/imap.c @@ -855,6 +855,16 @@ imap_connect (config_t * cfg) return 0; } +static int +mstrcmp (const char *s1, const char *s2) +{ + if (s1 == s2) + return 0; + if (!s1 || !s2) + return 1; + return strcmp (s1, s2); +} + /* `box' is the config info for the maildrop to sync. `minuid' is the * minimum UID to consider. in normal mode this will be 1, but in --fast * mode we only fetch messages newer than the last one seen in the local @@ -866,8 +876,9 @@ imap_open (config_t * box, unsigned int minuid, imap_t * imap, int imap_create) if (imap) { /* determine whether or not we can reuse the existing session */ - if (strcmp (box->host, imap->box->host) || - strcmp (box->user, imap->box->user) || + if (mstrcmp (box->tunnel, imap->box->tunnel) || + mstrcmp (box->host, imap->box->host) || + mstrcmp (box->user, imap->box->user) || box->port != imap->box->port #if HAVE_LIBSSL /* ensure that security requirements are met */