Sophie

Sophie

distrib > Mageia > 1 > i586 > media > core-updates-src > by-pkgid > b02833e8f0a28806cda4b2835cb2759e > files > 15

cyrus-imapd-2.3.16-4.1.mga1.src.rpm

--- cyrus-imapd-2.3.16/imap/global.c.orig	2009-10-13 17:10:36.000000000 +0200
+++ cyrus-imapd-2.3.16/imap/global.c	2010-04-12 10:38:05.000000000 +0200
@@ -542,14 +542,22 @@
 int access_ok(const char *user, const char *service, char *msgbuf, int size)
 {
     static char *fname = NULL;
+    static int nodb = 0;
     struct db *db = NULL;
     int r, ret = 1;  /* access always granted by default */
 
+    if (nodb) return ret;
+
     if (!fname) {
+	struct stat s;
 	/* create path to database */
 	fname = xmalloc(strlen(config_dir) + sizeof(FNAME_USERDENYDB) + 1);
 	strcpy(fname, config_dir);
 	strcat(fname, FNAME_USERDENYDB);
+	if (stat(fname, &s) == -1 && errno==ENOENT) {
+	    nodb = 1;
+	    return ret;
+	}
     }
 
     /* try to open database */
@@ -566,7 +574,7 @@
 	const char *data = NULL;
 	int datalen;
 
-	syslog(LOG_DEBUG, "fetching user_deny.db entry for '%s'", user);
+	/* syslog(LOG_DEBUG, "fetching user_deny.db entry for '%s'", user); */
 	do {
 	    r = DENYDB->fetch(db, user, strlen(user), &data, &datalen, NULL);
 	} while (r == CYRUSDB_AGAIN);