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

Bug#935704: buster-pu: package sendmail/8.15.2-14~deb10u1



Package: release.debian.org
Severity: normal
Tags: buster
User: release.debian.org@packages.debian.org
Usertags: pu

sendmail/buster is not compatible with the more strict checking in
start-stop-daemon/buster - matching on unpivileged pidfile alone is
insecure.
So match on the binary as well ... and while I debugged this, I also
noticed that sendmail was not stopped upon removal - the alternatives
were removed first, and thereafter the initscript turned into a noop
since the daemon was missing.

The package (a rebuild from sid) is already uploaded.


Andreas
diff -Nru sendmail-8.15.2/debian/changelog sendmail-8.15.2/debian/changelog
--- sendmail-8.15.2/debian/changelog	2018-09-16 00:11:47.000000000 +0200
+++ sendmail-8.15.2/debian/changelog	2019-08-25 15:04:16.000000000 +0200
@@ -1,3 +1,27 @@
+sendmail (8.15.2-14~deb10u1) buster; urgency=medium
+
+  * QA upload.
+  * Rebuild for buster.
+
+ -- Andreas Beckmann <anbe@debian.org>  Sun, 25 Aug 2019 15:04:16 +0200
+
+sendmail (8.15.2-14) unstable; urgency=medium
+
+  * QA upload.
+  * sendmail-bin.prerm: Stop sendmail before removing the alternatives.
+  * sendmail-bin.postinst: Let start-stop-daemon match on pidfile and
+    executable.  (Closes: #932598)
+
+ -- Andreas Beckmann <anbe@debian.org>  Sun, 25 Aug 2019 14:56:41 +0200
+
+sendmail (8.15.2-13) unstable; urgency=medium
+
+  * QA upload.
+  * initscript: Let start-stop-daemon match on pidfile and executable.
+    (Closes: #932598, LP: #1822866)
+
+ -- Andreas Beckmann <anbe@debian.org>  Tue, 30 Jul 2019 19:22:43 +0200
+
 sendmail (8.15.2-12) unstable; urgency=medium
 
   * QA upload.
diff -Nru sendmail-8.15.2/debian/local/sendmail.in sendmail-8.15.2/debian/local/sendmail.in
--- sendmail-8.15.2/debian/local/sendmail.in	2018-09-16 00:11:47.000000000 +0200
+++ sendmail-8.15.2/debian/local/sendmail.in	2019-08-25 15:04:16.000000000 +0200
@@ -103,43 +103,46 @@
 	STAMP_DIR="${SENDMAIL_ROOT}/stampdir";
 	START_MTAL_CMD="start-stop-daemon \
 		--pidfile $MTAL_PIDFILE \
-		--exec $MTA_DAEMON \
 		--startas $MTA_COMMAND \
 		--start";
 	STOP_MTAL_CMD="start-stop-daemon \
 		--pidfile $MTAL_PIDFILE \
+		--exec $MTA_COMMAND \
 		--name sendmail-mta \
 		--stop";
 	SIGNAL_MTAL_CMD="start-stop-daemon \
 		--pidfile $MTAL_PIDFILE \
+		--exec $MTA_COMMAND \
 		--name sendmail-mta \
 		--stop";
 	START_MTAQ_CMD="start-stop-daemon \
 		--pidfile $MTAQ_PIDFILE \
 		--make-pidfile \
-		--exec $MTA_DAEMON \
 		--startas $MTA_COMMAND \
 		--start";
 	STOP_MTAQ_CMD="start-stop-daemon \
 		--pidfile $MTAQ_PIDFILE \
+		--exec $MTA_COMMAND \
 		--name sendmail-mta \
 		--stop";
 	SIGNAL_MTAQ_CMD="start-stop-daemon \
 		--pidfile $MTAQ_PIDFILE \
+		--exec $MTA_COMMAND \
 		--name sendmail-mta \
 		--stop";
 	START_MSP_CMD="start-stop-daemon \
 		--pidfile $MSP_PIDFILE \
-		--exec $MSP_DAEMON \
 		--startas $MSP_COMMAND \
 		--chuid smmsp \
 		--start";
 	STOP_MSP_CMD="start-stop-daemon \
 		--pidfile $MSP_PIDFILE \
+		--exec $MSP_COMMAND \
 		--name sendmail-msp \
 		--stop";
 	SIGNAL_MSP_CMD="start-stop-daemon \
 		--pidfile $MSP_PIDFILE \
+		--exec $MSP_COMMAND \
 		--name sendmail-msp \
 		--stop";
 	NAME='sendmail';
diff -Nru sendmail-8.15.2/debian/sendmail-bin.postinst.in sendmail-8.15.2/debian/sendmail-bin.postinst.in
--- sendmail-8.15.2/debian/sendmail-bin.postinst.in	2018-09-16 00:11:47.000000000 +0200
+++ sendmail-8.15.2/debian/sendmail-bin.postinst.in	2019-08-25 15:04:16.000000000 +0200
@@ -6,29 +6,34 @@
 #-----------------------------------------------------------
 #stop(): stop sendmail
 stop_mta () {
+	if [ -x @sysconfdir@/init.d/sendmail ]; then
+		invoke-rc.d --quiet --force sendmail stop
+	fi
 	# Account for varying PIDfile locations of older sendmail packages
 	if [ -f /var/run/sendmail/mta/sendmail.pid ]; then
 		start-stop-daemon --stop --oknodo --quiet \
+			--exec /usr/lib/sm.bin/sendmail \
 			--pidfile /var/run/sendmail/msp/sendmail.pid > /dev/null;
 		start-stop-daemon --stop --oknodo --quiet \
-			-pidfile /var/run/sendmail/mta/sendmail.pid > /dev/null;
+			--exec /usr/lib/sm.bin/sendmail \
+			--pidfile /var/run/sendmail/mta/sendmail.pid > /dev/null;
 	elif [ -f /var/run/sendmail/sendmail.pid ]; then
 		start-stop-daemon --stop --oknodo --quiet \
+			--exec /usr/lib/sm.bin/sendmail \
 			--pidfile /var/run/sendmail/sendmail.pid > /dev/null;
 	elif [ -f /var/run/sendmail.pid ]; then
 		start-stop-daemon --stop --oknodo --quiet \
+			--exec /usr/lib/sm.bin/sendmail \
 			--pidfile /var/run/sendmail.pid > /dev/null;
 		fi;
 	# Since we changed the executable, do one more try - using the old name
 	if [ -f /var/run/sendmail/mta/sendmail.pid ]; then
 		start-stop-daemon --stop --oknodo --quiet \
+			--exec /usr/lib/sm.bin/sendmail \
 			--pidfile /var/run/sendmail/mta/sendmail.pid > /dev/null;
 		fi;
 	start-stop-daemon --stop --oknodo --quiet \
 		--name sendmail > /dev/null;
-	if [ -x @sysconfdir@/init.d/sendmail ]; then
-		invoke-rc.d --quiet --force sendmail stop
-		fi;
 	};
 
 #-----------------------------------------------------------
diff -Nru sendmail-8.15.2/debian/sendmail-bin.prerm.in sendmail-8.15.2/debian/sendmail-bin.prerm.in
--- sendmail-8.15.2/debian/sendmail-bin.prerm.in	2018-09-16 00:11:47.000000000 +0200
+++ sendmail-8.15.2/debian/sendmail-bin.prerm.in	2019-08-25 15:04:16.000000000 +0200
@@ -1,32 +1,26 @@
 #!/bin/sh
-set -e;
-
-PACKAGE=sendmail-bin;
+set -e
 
 if [ "$1" = "remove" ]; then
-		# Remove alternatives for MTA, MSP
-		update-alternatives --remove sendmail-mta @libexecdir@/sendmail;
-		update-alternatives --remove sendmail-msp @libexecdir@/sendmail;
-		if [ -x @sysconfdir@/init.d/sendmail ] && \
-			[ -x @datadir@/sendmail/sendmail ]; then
-			invoke-rc.d --quiet --force sendmail stop
-			fi;
-		# Prevent cronjob from running during upgrade...
-		if [ -f /etc/cron.d/sendmail ]; then
-			rm -f @sysconfdir@/cron.d/sendmail;
-			fi;
+	# Prevent cronjob from running during removal...
+	if [ -f @sysconfdir@/cron.d/sendmail ]; then
+		rm -f @sysconfdir@/cron.d/sendmail
+	fi
 fi
 
 if [ "$1" = "upgrade" ]; then
-		# Prevent cronjob from running during upgrade...
-		if [ -f /etc/cron.d/sendmail ]; then
-			echo "#prerm" > @sysconfdir@/cron.d/sendmail;
-			fi;
-
-		# NOTE  NOTE  NOTE  NOTE  NOTE
-		# If we fall through to DEBHELPER, sendmail will be stopped
-		# much earlier than necessary !!!
-		exit 0;
+	# Prevent cronjob from running during upgrade...
+	if [ -f @sysconfdir@/cron.d/sendmail ]; then
+		echo "#prerm" > @sysconfdir@/cron.d/sendmail
+		# The cronjob is regenerated by the postinst
+	fi
 fi
 
 #DEBHELPER#
+
+if [ "$1" = "remove" ]; then
+	# Remove alternatives for MTA, MSP
+	# Note: removes paths needed by the initscript
+	update-alternatives --remove sendmail-mta @libexecdir@/sendmail
+	update-alternatives --remove sendmail-msp @libexecdir@/sendmail
+fi

Reply to: