Your message dated Sat, 01 Apr 2017 20:19:00 +0000
with message-id <[email protected]>
and subject line Re: Bug#859192: unblock: openssh/1:7.4p1-10
has caused the Debian Bug report #859192,
regarding unblock: openssh/1:7.4p1-10
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
859192: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859192
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: [email protected]
Usertags: unblock

Please unblock openssh 1:7.4p1-10, which has already built everywhere
and passed on ci.debian.net.  This has one RC bug fix (#858252) and one
that I think verges on RC (#760422/#856825) since it causes some very
confusing problems for anyone with a separate /var.  The fix for the
latter is a bit lengthy but it's almost entirely a mechanical
search-and-replace, with the sole exception being the addition of
--with-pid-dir=/run (the default is /var/run).

diff -Nru openssh-7.4p1/debian/.git-dpm openssh-7.4p1/debian/.git-dpm
--- openssh-7.4p1/debian/.git-dpm       2017-03-16 13:42:23.000000000 +0000
+++ openssh-7.4p1/debian/.git-dpm       2017-03-30 11:18:22.000000000 +0100
@@ -1,6 +1,6 @@
 # see git-dpm(1) from git-dpm package
-35b2ea77a74348b575d680061f35ec7992b26ec8
-35b2ea77a74348b575d680061f35ec7992b26ec8
+904bc482ad87648a2c799c441dc6a8449f24e15a
+904bc482ad87648a2c799c441dc6a8449f24e15a
 971a7653746a6972b907dfe0ce139c06e4a6f482
 971a7653746a6972b907dfe0ce139c06e4a6f482
 openssh_7.4p1.orig.tar.gz
diff -Nru openssh-7.4p1/debian/changelog openssh-7.4p1/debian/changelog
--- openssh-7.4p1/debian/changelog      2017-03-16 13:43:15.000000000 +0000
+++ openssh-7.4p1/debian/changelog      2017-03-30 11:19:04.000000000 +0100
@@ -1,3 +1,11 @@
+openssh (1:7.4p1-10) unstable; urgency=medium
+
+  * Move privilege separation directory and PID file from /var/run/ to /run/
+    (closes: #760422, #856825).
+  * Unbreak Unix domain socket forwarding for root (closes: #858252).
+
+ -- Colin Watson <[email protected]>  Thu, 30 Mar 2017 11:19:04 +0100
+
 openssh (1:7.4p1-9) unstable; urgency=medium
 
   * Fix null pointer dereference in ssh-keygen; this fixes an autopkgtest
diff -Nru openssh-7.4p1/debian/openssh-server-udeb.dirs 
openssh-7.4p1/debian/openssh-server-udeb.dirs
--- openssh-7.4p1/debian/openssh-server-udeb.dirs       2017-03-16 
13:42:18.000000000 +0000
+++ openssh-7.4p1/debian/openssh-server-udeb.dirs       2017-03-30 
11:18:21.000000000 +0100
@@ -1 +1 @@
-var/run/sshd
+run/sshd
diff -Nru openssh-7.4p1/debian/openssh-server.if-up 
openssh-7.4p1/debian/openssh-server.if-up
--- openssh-7.4p1/debian/openssh-server.if-up   2017-03-16 13:42:18.000000000 
+0000
+++ openssh-7.4p1/debian/openssh-server.if-up   2017-03-30 11:18:21.000000000 
+0100
@@ -25,8 +25,8 @@
        exit 0
 fi
 
-if [ ! -f /var/run/sshd.pid ] || \
-   [ "$(ps -p "$(cat /var/run/sshd.pid)" -o comm=)" != sshd ]; then
+if [ ! -f /run/sshd.pid ] || \
+   [ "$(ps -p "$(cat /run/sshd.pid)" -o comm=)" != sshd ]; then
        exit 0
 fi
 
diff -Nru openssh-7.4p1/debian/openssh-server.postinst 
openssh-7.4p1/debian/openssh-server.postinst
--- openssh-7.4p1/debian/openssh-server.postinst        2017-03-16 
13:42:18.000000000 +0000
+++ openssh-7.4p1/debian/openssh-server.postinst        2017-03-30 
11:18:21.000000000 +0100
@@ -111,7 +111,7 @@
 
 setup_sshd_user() {
        if ! getent passwd sshd >/dev/null; then
-               adduser --quiet --system --no-create-home --home /var/run/sshd 
--shell /usr/sbin/nologin sshd
+               adduser --quiet --system --no-create-home --home /run/sshd 
--shell /usr/sbin/nologin sshd
        fi
 }
 
@@ -125,14 +125,14 @@
            rm -f /etc/ssh/primes
        fi
        if dpkg --compare-versions "$2" lt-nl 1:5.5p1-6; then
-           rm -f /var/run/sshd/.placeholder
+           rm -f /run/sshd/.placeholder
        fi
        if dpkg --compare-versions "$2" lt-nl 1:6.2p2-3 && \
           which initctl >/dev/null && initctl version 2>/dev/null | grep -q 
upstart && \
           ! status ssh 2>/dev/null | grep -q ' start/'; then
            # We must stop the sysvinit-controlled sshd before we can
            # restart it under Upstart.
-           start-stop-daemon --stop --quiet --oknodo --pidfile 
/var/run/sshd.pid || true
+           start-stop-daemon --stop --quiet --oknodo --pidfile /run/sshd.pid 
|| true
        fi
        if dpkg --compare-versions "$2" lt-nl 1:6.5p1-2 && \
           deb-systemd-helper debian-installed ssh.socket && \
@@ -146,7 +146,7 @@
           [ -d /run/systemd/system ]; then
            # We must stop the sysvinit-controlled sshd before we can
            # restart it under systemd.
-           start-stop-daemon --stop --quiet --oknodo --pidfile 
/var/run/sshd.pid --exec /usr/sbin/sshd || true
+           start-stop-daemon --stop --quiet --oknodo --pidfile /run/sshd.pid 
--exec /usr/sbin/sshd || true
        fi
 fi
 
diff -Nru openssh-7.4p1/debian/openssh-server.preinst 
openssh-7.4p1/debian/openssh-server.preinst
--- openssh-7.4p1/debian/openssh-server.preinst 2017-03-16 13:42:18.000000000 
+0000
+++ openssh-7.4p1/debian/openssh-server.preinst 2017-03-30 11:18:21.000000000 
+0100
@@ -7,9 +7,9 @@
 if [ "$action" = upgrade ] || [ "$action" = install ]
 then
   if dpkg --compare-versions "$version" lt 1:5.5p1-6 && \
-     [ -d /var/run/sshd ]; then
-    # make sure /var/run/sshd is not removed on upgrades
-    touch /var/run/sshd/.placeholder
+     [ -d /run/sshd ]; then
+    # make sure /run/sshd is not removed on upgrades
+    touch /run/sshd/.placeholder
   fi
 fi
 
diff -Nru openssh-7.4p1/debian/openssh-server.ssh.init 
openssh-7.4p1/debian/openssh-server.ssh.init
--- openssh-7.4p1/debian/openssh-server.ssh.init        2017-03-16 
13:42:18.000000000 +0000
+++ openssh-7.4p1/debian/openssh-server.ssh.init        2017-03-30 
11:18:21.000000000 +0100
@@ -66,9 +66,9 @@
 
 check_privsep_dir() {
     # Create the PrivSep empty dir if necessary
-    if [ ! -d /var/run/sshd ]; then
-       mkdir /var/run/sshd
-       chmod 0755 /var/run/sshd
+    if [ ! -d /run/sshd ]; then
+       mkdir /run/sshd
+       chmod 0755 /run/sshd
     fi
 }
 
@@ -87,7 +87,7 @@
        check_for_no_start
        check_dev_null
        log_daemon_msg "Starting OpenBSD Secure Shell server" "sshd" || true
-       if start-stop-daemon --start --quiet --oknodo --pidfile 
/var/run/sshd.pid --exec /usr/sbin/sshd -- $SSHD_OPTS; then
+       if start-stop-daemon --start --quiet --oknodo --pidfile /run/sshd.pid 
--exec /usr/sbin/sshd -- $SSHD_OPTS; then
            log_end_msg 0 || true
        else
            log_end_msg 1 || true
@@ -96,7 +96,7 @@
   stop)
        check_for_upstart 0
        log_daemon_msg "Stopping OpenBSD Secure Shell server" "sshd" || true
-       if start-stop-daemon --stop --quiet --oknodo --pidfile 
/var/run/sshd.pid; then
+       if start-stop-daemon --stop --quiet --oknodo --pidfile /run/sshd.pid; 
then
            log_end_msg 0 || true
        else
            log_end_msg 1 || true
@@ -108,7 +108,7 @@
        check_for_no_start
        check_config
        log_daemon_msg "Reloading OpenBSD Secure Shell server's configuration" 
"sshd" || true
-       if start-stop-daemon --stop --signal 1 --quiet --oknodo --pidfile 
/var/run/sshd.pid --exec /usr/sbin/sshd; then
+       if start-stop-daemon --stop --signal 1 --quiet --oknodo --pidfile 
/run/sshd.pid --exec /usr/sbin/sshd; then
            log_end_msg 0 || true
        else
            log_end_msg 1 || true
@@ -120,10 +120,10 @@
        check_privsep_dir
        check_config
        log_daemon_msg "Restarting OpenBSD Secure Shell server" "sshd" || true
-       start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile 
/var/run/sshd.pid
+       start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile 
/run/sshd.pid
        check_for_no_start log_end_msg
        check_dev_null log_end_msg
-       if start-stop-daemon --start --quiet --oknodo --pidfile 
/var/run/sshd.pid --exec /usr/sbin/sshd -- $SSHD_OPTS; then
+       if start-stop-daemon --start --quiet --oknodo --pidfile /run/sshd.pid 
--exec /usr/sbin/sshd -- $SSHD_OPTS; then
            log_end_msg 0 || true
        else
            log_end_msg 1 || true
@@ -136,13 +136,13 @@
        check_config
        log_daemon_msg "Restarting OpenBSD Secure Shell server" "sshd" || true
        RET=0
-       start-stop-daemon --stop --quiet --retry 30 --pidfile /var/run/sshd.pid 
|| RET="$?"
+       start-stop-daemon --stop --quiet --retry 30 --pidfile /run/sshd.pid || 
RET="$?"
        case $RET in
            0)
                # old daemon stopped
                check_for_no_start log_end_msg
                check_dev_null log_end_msg
-               if start-stop-daemon --start --quiet --oknodo --pidfile 
/var/run/sshd.pid --exec /usr/sbin/sshd -- $SSHD_OPTS; then
+               if start-stop-daemon --start --quiet --oknodo --pidfile 
/run/sshd.pid --exec /usr/sbin/sshd -- $SSHD_OPTS; then
                    log_end_msg 0 || true
                else
                    log_end_msg 1 || true
@@ -163,7 +163,7 @@
 
   status)
        check_for_upstart 1
-       status_of_proc -p /var/run/sshd.pid /usr/sbin/sshd sshd && exit 0 || 
exit $?
+       status_of_proc -p /run/sshd.pid /usr/sbin/sshd sshd && exit 0 || exit $?
        ;;
 
   *)
diff -Nru openssh-7.4p1/debian/openssh-server.ssh.upstart 
openssh-7.4p1/debian/openssh-server.ssh.upstart
--- openssh-7.4p1/debian/openssh-server.ssh.upstart     2017-03-16 
13:42:18.000000000 +0000
+++ openssh-7.4p1/debian/openssh-server.ssh.upstart     2017-03-30 
11:18:21.000000000 +0100
@@ -21,7 +21,7 @@
     test -x /usr/sbin/sshd || { stop; exit 0; }
     test -e /etc/ssh/sshd_not_to_be_run && { stop; exit 0; }
 
-    mkdir -p -m0755 /var/run/sshd
+    mkdir -p -m0755 /run/sshd
 end script
 
 # if you used to set SSHD_OPTS in /etc/default/ssh, you can change the
diff -Nru openssh-7.4p1/debian/patches/series 
openssh-7.4p1/debian/patches/series
--- openssh-7.4p1/debian/patches/series 2017-03-16 13:42:23.000000000 +0000
+++ openssh-7.4p1/debian/patches/series 2017-03-30 11:18:21.000000000 +0100
@@ -33,3 +33,4 @@
 ssh-keygen-hash-corruption.patch
 ssh-keyscan-hash-port.patch
 ssh-keygen-null-deref.patch
+unbreak-unix-forwarding-for-root.patch
diff -Nru openssh-7.4p1/debian/patches/unbreak-unix-forwarding-for-root.patch 
openssh-7.4p1/debian/patches/unbreak-unix-forwarding-for-root.patch
--- openssh-7.4p1/debian/patches/unbreak-unix-forwarding-for-root.patch 
1970-01-01 01:00:00.000000000 +0100
+++ openssh-7.4p1/debian/patches/unbreak-unix-forwarding-for-root.patch 
2017-03-30 11:18:22.000000000 +0100
@@ -0,0 +1,80 @@
+From 904bc482ad87648a2c799c441dc6a8449f24e15a Mon Sep 17 00:00:00 2001
+From: "[email protected]" <[email protected]>
+Date: Wed, 4 Jan 2017 05:37:40 +0000
+Subject: upstream commit
+
+unbreak Unix domain socket forwarding for root; ok
+markus@
+
+Upstream-ID: 6649c76eb7a3fa15409373295ca71badf56920a2
+
+Origin: 
https://anongit.mindrot.org/openssh.git/commit/?id=51045869fa084cdd016fdd721ea760417c0a3bf3
+Bug-Debian: https://bugs.debian.org/858252
+Last-Update: 2017-03-30
+
+Patch-Name: unbreak-unix-forwarding-for-root.patch
+---
+ serverloop.c | 19 ++++++++++++-------
+ 1 file changed, 12 insertions(+), 7 deletions(-)
+
+diff --git a/serverloop.c b/serverloop.c
+index c4e4699d..c55d203b 100644
+--- a/serverloop.c
++++ b/serverloop.c
+@@ -468,6 +468,10 @@ server_request_direct_streamlocal(void)
+       Channel *c = NULL;
+       char *target, *originator;
+       u_short originator_port;
++      struct passwd *pw = the_authctxt->pw;
++
++      if (pw == NULL || !the_authctxt->valid)
++              fatal("server_input_global_request: no/invalid user");
+ 
+       target = packet_get_string(NULL);
+       originator = packet_get_string(NULL);
+@@ -480,7 +484,7 @@ server_request_direct_streamlocal(void)
+       /* XXX fine grained permissions */
+       if ((options.allow_streamlocal_forwarding & FORWARD_LOCAL) != 0 &&
+           !no_port_forwarding_flag && !options.disable_forwarding &&
+-          use_privsep) {
++          (pw->pw_uid == 0 || use_privsep)) {
+               c = channel_connect_to_path(target,
+                   "[email protected]", "direct-streamlocal");
+       } else {
+@@ -702,6 +706,10 @@ server_input_global_request(int type, u_int32_t seq, void 
*ctxt)
+       int want_reply;
+       int r, success = 0, allocated_listen_port = 0;
+       struct sshbuf *resp = NULL;
++      struct passwd *pw = the_authctxt->pw;
++
++      if (pw == NULL || !the_authctxt->valid)
++              fatal("server_input_global_request: no/invalid user");
+ 
+       rtype = packet_get_string(NULL);
+       want_reply = packet_get_char();
+@@ -709,12 +717,8 @@ server_input_global_request(int type, u_int32_t seq, void 
*ctxt)
+ 
+       /* -R style forwarding */
+       if (strcmp(rtype, "tcpip-forward") == 0) {
+-              struct passwd *pw;
+               struct Forward fwd;
+ 
+-              pw = the_authctxt->pw;
+-              if (pw == NULL || !the_authctxt->valid)
+-                      fatal("server_input_global_request: no/invalid user");
+               memset(&fwd, 0, sizeof(fwd));
+               fwd.listen_host = packet_get_string(NULL);
+               fwd.listen_port = (u_short)packet_get_int();
+@@ -762,9 +766,10 @@ server_input_global_request(int type, u_int32_t seq, void 
*ctxt)
+               /* check permissions */
+               if ((options.allow_streamlocal_forwarding & FORWARD_REMOTE) == 0
+                   || no_port_forwarding_flag || options.disable_forwarding ||
+-                  !use_privsep) {
++                  (pw->pw_uid != 0 && !use_privsep)) {
+                       success = 0;
+-                      packet_send_debug("Server has disabled port 
forwarding.");
++                      packet_send_debug("Server has disabled "
++                          "streamlocal forwarding.");
+               } else {
+                       /* Start listening on the socket */
+                       success = channel_setup_remote_fwd_listener(
diff -Nru openssh-7.4p1/debian/rules openssh-7.4p1/debian/rules
--- openssh-7.4p1/debian/rules  2017-03-16 13:42:18.000000000 +0000
+++ openssh-7.4p1/debian/rules  2017-03-30 11:18:21.000000000 +0100
@@ -68,7 +68,8 @@
 confflags += --disable-strip
 confflags += --with-mantype=doc
 confflags += --with-4in6
-confflags += --with-privsep-path=/var/run/sshd
+confflags += --with-privsep-path=/run/sshd
+confflags += --with-pid-dir=/run
 
 # The Hurd needs libcrypt for res_query et al.
 ifeq ($(DEB_HOST_ARCH_OS),hurd)
diff -Nru openssh-7.4p1/debian/systemd/sshd.conf 
openssh-7.4p1/debian/systemd/sshd.conf
--- openssh-7.4p1/debian/systemd/sshd.conf      2017-03-16 13:42:18.000000000 
+0000
+++ openssh-7.4p1/debian/systemd/sshd.conf      2017-03-30 11:18:21.000000000 
+0100
@@ -1 +1 @@
-d /var/run/sshd 0755 root root
+d /run/sshd 0755 root root

unblock openssh/1:7.4p1-10

-- 
Colin Watson                                       [[email protected]]

Attachment: signature.asc
Description: Digital signature


--- End Message ---
--- Begin Message ---
Cyril Brulebois:
> Niels Thykier <[email protected]> (2017-04-01):
>>> unblock openssh/1:7.4p1-10
>>>
>>
>> Ack from here - CC'ing KiBi for a d-i ack.
> 
> I'm not sure this affects d-i (and I haven't tried it), but no
> objections on principle.
> 
> 
> KiBi.
> 

Unblocked, thanks.

~Niels

--- End Message ---

Reply via email to