[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#701697: unblock: cyrus-imapd-2.4/2.4.16-3



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package cyrus-imapd-2.4

This update fixes one remote crash, one more crash found in upstream
git, missing permissions on clean install (due /etc/sieve ->
/var/spool/sieve symlink) and one "cosmetic" fix which will really
delete stale files in proc and state dirs instead of printing them.

$ diffstat cyrus-imapd-2.4_2.4.16-3.debdiff
 changelog                                                 |   11 +++
 cyrus-common.cyrus-imapd.init                             |    4 -
 cyrus-makedirs                                            |   12 ++--
 patches/fix_consistent_crash_fetching_message_parts.patch |   42 ++++++++++++++
 patches/fix_crash_in_sync_client.patch                    |   14 ++++
 patches/series                                            |    2 
 6 files changed, 77 insertions(+), 8 deletions(-)

Debdiff attached...  Thank you.

unblock cyrus-imapd-2.4/2.4.16-3

-- System Information:
Debian Release: 7.0
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -Nru cyrus-imapd-2.4-2.4.16/debian/changelog cyrus-imapd-2.4-2.4.16/debian/changelog
--- cyrus-imapd-2.4-2.4.16/debian/changelog	2012-10-26 13:54:37.000000000 +0200
+++ cyrus-imapd-2.4-2.4.16/debian/changelog	2013-02-26 12:37:22.000000000 +0100
@@ -1,3 +1,14 @@
+cyrus-imapd-2.4 (2.4.16-3) unstable; urgency=low
+
+  * Use find -H instead of plain find to fix the permissions inside the
+    sieve dir (Closes: #693507)
+  * Really clean (instead of printing) the stale lock and proc directories
+    (Closes: #629609)
+  * Pull fix for crashes when fetching message parts (Closes: #700801)
+  * Fix crash in sync client (found in upstream git)
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 26 Feb 2013 12:37:09 +0100
+
 cyrus-imapd-2.4 (2.4.16-2) unstable; urgency=low
 
   [ Gregor Herrman ]
diff -Nru cyrus-imapd-2.4-2.4.16/debian/cyrus-common.cyrus-imapd.init cyrus-imapd-2.4-2.4.16/debian/cyrus-common.cyrus-imapd.init
--- cyrus-imapd-2.4-2.4.16/debian/cyrus-common.cyrus-imapd.init	2012-10-26 13:54:37.000000000 +0200
+++ cyrus-imapd-2.4-2.4.16/debian/cyrus-common.cyrus-imapd.init	2013-02-26 12:37:22.000000000 +0100
@@ -145,8 +145,8 @@
     #   2 if daemon could not be started
     
     # Clean stale entries
-    find "$LOCK_DIR" -mindepth 1 -depth -size 0 # -delete
-    find "$PROC_DIR" -mindepth 1 -depth -name '[0-9]*' # -delete
+    find "$LOCK_DIR" -mindepth 1 -depth -size 0 -delete
+    find "$PROC_DIR" -mindepth 1 -depth -name '[0-9]*' -delete
 
     start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
 	|| return 1
diff -Nru cyrus-imapd-2.4-2.4.16/debian/cyrus-makedirs cyrus-imapd-2.4-2.4.16/debian/cyrus-makedirs
--- cyrus-imapd-2.4-2.4.16/debian/cyrus-makedirs	2012-10-26 13:54:37.000000000 +0200
+++ cyrus-imapd-2.4-2.4.16/debian/cyrus-makedirs	2013-02-26 12:37:22.000000000 +0100
@@ -89,7 +89,7 @@
     	[ -d "$confdir/$i/$j" ] || mkdir "$confdir/$i/$j"
     done
 done
-find "$confdir" \( -not -user cyrus -or -not -group mail \) -execdir chown cyrus:mail '{}' \;
+find -H "$confdir" \( -not -user cyrus -or -not -group mail \) -execdir chown cyrus:mail '{}' \;
 
 # Now, create the spool partitions
 for i in $partitions ; do
@@ -102,9 +102,9 @@
 	   done
 	}
 	[ -d "$i/stage." ] || mkdir "$i/stage."
-	find "$i" \( -not -user cyrus -or -not -group mail \) -execdir chown cyrus:mail '{}' \;
+	find -H "$i" \( -not -user cyrus -or -not -group mail \) -execdir chown cyrus:mail '{}' \;
 	# and kill any squatter indexes
-	[ $killsquat -ne 0 ] && find "$i" -name 'cyrus.squat' -type f -exec rm -f "{}" \;
+	[ $killsquat -ne 0 ] && find -H "$i" -name 'cyrus.squat' -type f -exec rm -f "{}" \;
 done
 
 # And the sieve directory structure
@@ -115,7 +115,7 @@
 		[ -d "$sievedir/$j" ] || mkdir "$sievedir/$j"
 		chmod 755 "$sievedir/$j"
 	done
-	find "$sievedir" \( -not -user cyrus -or -not -group mail \) -execdir chown cyrus:mail '{}' \;
+	find -H "$sievedir" \( -not -user cyrus -or -not -group mail \) -execdir chown cyrus:mail '{}' \;
 }
 
 [ "x${CYRUSOPTFILESYS}" != "x1" ] && exit 0
@@ -133,11 +133,11 @@
 	case ${i} in
 	ext2)
   		echo "Setting attributes to +S for  ${partsys%% *}..."
-		find "${partsys%% *}" -type d -exec chattr +S "{}" \;
+		find -H "${partsys%% *}" -type d -exec chattr +S "{}" \;
 		;;
 	ext3)
   		echo "Setting attributes to -S -j for  ${partsys%% *}..."
-		find "${partsys%% *}" -type d -exec chattr -S -j "{}" \;
+		find -H "${partsys%% *}" -type d -exec chattr -S -j "{}" \;
 		;;
 	esac
 	partsys="${partsys#* }"
diff -Nru cyrus-imapd-2.4-2.4.16/debian/patches/fix_consistent_crash_fetching_message_parts.patch cyrus-imapd-2.4-2.4.16/debian/patches/fix_consistent_crash_fetching_message_parts.patch
--- cyrus-imapd-2.4-2.4.16/debian/patches/fix_consistent_crash_fetching_message_parts.patch	1970-01-01 01:00:00.000000000 +0100
+++ cyrus-imapd-2.4-2.4.16/debian/patches/fix_consistent_crash_fetching_message_parts.patch	2013-02-26 12:37:22.000000000 +0100
@@ -0,0 +1,42 @@
+--- a/lib/prot.c
++++ b/lib/prot.c
+@@ -1277,6 +1277,9 @@ int prot_printf(struct protstream *s, co
+ 	    prot_write(s, buf, strlen(buf));
+ 	    break;
+ 
++	/* according to linux 'man 3 printf' this is supposed to be
++	 * of type "ptrdiff_t", not "size_t" - but don't want to break
++	 * running code! */
+ 	case 't': {
+ 	    size_t tu;
+ 	    ssize_t td;
+@@ -1310,6 +1313,29 @@ int prot_printf(struct protstream *s, co
+ 	    (void)prot_putc(i, s);
+ 	    break;
+ 
++	case 'z': {
++	    size_t zu;
++	    ssize_t zd;
++
++	    switch (*++percent) {
++	    case 'u':
++		zu = va_arg(pvar, size_t);
++		snprintf(buf, sizeof(buf), "%zu", zu);
++		prot_write(s, buf, strlen(buf));
++		break;
++
++	    case 'd':
++		zd = va_arg(pvar, ssize_t);
++		snprintf(buf, sizeof(buf), "%zd", zd);
++		prot_write(s, buf, strlen(buf));
++		break;
++
++	    default:
++		abort();
++	    }
++	    break;
++	}
++
+ 	default:
+ 	    abort();
+ 	}
diff -Nru cyrus-imapd-2.4-2.4.16/debian/patches/fix_crash_in_sync_client.patch cyrus-imapd-2.4-2.4.16/debian/patches/fix_crash_in_sync_client.patch
--- cyrus-imapd-2.4-2.4.16/debian/patches/fix_crash_in_sync_client.patch	1970-01-01 01:00:00.000000000 +0100
+++ cyrus-imapd-2.4-2.4.16/debian/patches/fix_crash_in_sync_client.patch	2013-02-26 12:37:22.000000000 +0100
@@ -0,0 +1,14 @@
+--- a/imap/sync_client.c
++++ b/imap/sync_client.c
+@@ -1306,7 +1306,10 @@ static int update_mailbox_once(struct sy
+     r = mailbox_open_irl(local->name, &mailbox);
+     if (r == IMAP_MAILBOX_NONEXISTENT) {
+ 	/* been deleted in the meanwhile... */
+-	r = folder_delete(remote->name);
++	if (remote)
++	    r = folder_delete(remote->name);
++	else
++	    r = 0;
+ 	goto done;
+     }
+     else if (r)
diff -Nru cyrus-imapd-2.4-2.4.16/debian/patches/series cyrus-imapd-2.4-2.4.16/debian/patches/series
--- cyrus-imapd-2.4-2.4.16/debian/patches/series	2012-10-26 13:54:37.000000000 +0200
+++ cyrus-imapd-2.4-2.4.16/debian/patches/series	2013-02-26 12:37:22.000000000 +0100
@@ -30,3 +30,5 @@
 cyrus-imapd-2.4.2-903-normalize-authorization-id.patch
 86-fix_PATH_MAX_on_hurd.patch
 87-try_only_-ldb.patch
+fix_consistent_crash_fetching_message_parts.patch
+fix_crash_in_sync_client.patch

Reply to: