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

Hi release team,

With the maintainer's permission [1], I'd like to ask for your opinion
on how to proceed with #731583.

<simple>
Based on a patch provided by upstream, I created a debdiff (attached)
for 1.8.10p3 in testing with the following changelog entry:

     * Backport upstream's fix for host specifications using a FQDN.
       These were no longer working since 1.8.8. Closes: #731583

Considering that the severity of #731583 is serious, I assume an upload
to t-p-u should be OK?
</simple>

<controversial>
Furthermore, I was wondering though whether you'd consider allowing
sudo/1.8.11p2 from unstable to migrate.

The diff between testing and unstable is huge (MBs), so this would be
very difficult to review and of course totally against freeze policy.
However, I am under the impression that

  (a) it would be highly preferrable to support 1.8.11p2 in Jessie,
      especially from a security POV

  (b) According to [2,3,4], most of the changes are bugfixes. In fact,
      I only count 7 non-fix changes and non-translation changes,
      and most of the fix changes appear to be highly desirable.

Furthermore, the largest part of this code base, [3], has unstable since
2014-10-10, and its migration to testing was only interrupted by the
upload of revision -2 of [3] on 2014-10-20, so apparently juuust not
enough for the full 10-day period. This upload merely added two patches.

Then again, on 2014-10-30, [4] was uploaded. This new upstream release
contained only a single (apparently urgent) bugfix. However, this upload
reset the 10-day clock again, so 1.8.11p* did not enter testing again.

So there really isn't anything that new to Debian in the version in
unstable. Looking back, the easiest solution would probably have been to
ask for an unblock of [4] (the one-change fix) just after its upload on
2014-10-30, but that's water under the bridge now.
</controversial>

If allowing 1.8.11p2 to migrate is something you'd consider discussing,
please let me know how I can help in your deliberations. If this change
is simply too big, please let me know if you are OK with the t-p-u
upload of the attached debdiff for 1.8.10p3, and I will then contact the
maintainer / look for NMU sponsorship.

Regards,
Christian

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=731583#104
[2] http://www.sudo.ws/sudo/stable.html#1.8.11
[3] http://www.sudo.ws/sudo/stable.html#1.8.11p1
[4] http://www.sudo.ws/sudo/stable.html#1.8.11p2
diff -Nru sudo-1.8.10p3/debian/changelog sudo-1.8.10p3/debian/changelog
--- sudo-1.8.10p3/debian/changelog      2014-09-14 18:26:06.000000000 +0200
+++ sudo-1.8.10p3/debian/changelog      2014-12-05 15:12:47.000000000 +0100
@@ -1,3 +1,11 @@
+sudo (1.8.10p3-1.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Backport upstream's fix for host specifications using a FQDN. These were
+    no longer working since 1.8.8. Closes: #731583
+
+ -- Christian Kastner <deb...@kvr.at>  Fri, 05 Dec 2014 15:10:30 +0100
+
 sudo (1.8.10p3-1) unstable; urgency=low
 
   * new upstream release
diff -Nru 
sudo-1.8.10p3/debian/patches/Fix-for-broken-FQDN-host-specifications.diff 
sudo-1.8.10p3/debian/patches/Fix-for-broken-FQDN-host-specifications.diff
--- sudo-1.8.10p3/debian/patches/Fix-for-broken-FQDN-host-specifications.diff   
1970-01-01 01:00:00.000000000 +0100
+++ sudo-1.8.10p3/debian/patches/Fix-for-broken-FQDN-host-specifications.diff   
2014-12-05 15:20:43.000000000 +0100
@@ -0,0 +1,92 @@
+From: Christian Kastner <deb...@kvr.at>
+Date: Fri, 05 Dec 2014 14:58:50 +0100
+Subject: Fix for broken FQDN host specifications
+
+A bug was introduced in sudo 1.8.8 which broke host specifications using a
+FQDN, eg Host_Alias = host.example.com. Upstream has fixed this in 1.8.12.
+
+This patch contains the fix backported to 1.8.10p3.
+
+Origin: http://www.sudo.ws/repos/sudo/rev/4f75b01d4884
+Bug: http://www.sudo.ws/bugs/show_bug.cgi?id=678
+Bug-Debian: https://bugs.debian.org/731583
+Last-Update: 2014-05-12
+
+Index: sudo-1.8.10p3/plugins/sudoers/sudoers.c
+===================================================================
+--- sudo-1.8.10p3.orig/plugins/sudoers/sudoers.c
++++ sudo-1.8.10p3/plugins/sudoers/sudoers.c
+@@ -799,32 +799,69 @@ set_loginclass(struct passwd *pw)
+ #endif
+ 
+ /*
+- * Look up the fully qualified domain name and set user_host and user_shost.
++ * Look up the fully qualified domain name of user_host and user_runhost.
++ * Sets user_host, user_shost, user_runhost and user_srunhost.
+  * Use AI_FQDN if available since "canonical" is not always the same as fqdn.
+  */
+ static void
+ set_fqdn(void)
+ {
+     struct addrinfo *res0, hint;
++    bool remote;
+     char *p;
+     debug_decl(set_fqdn, SUDO_DEBUG_PLUGIN)
+ 
++    /* If the -h flag was given we need to resolve both host and runhost. */
++    remote = strcmp(user_runhost, user_host) != 0;
++
+     memset(&hint, 0, sizeof(hint));
+     hint.ai_family = PF_UNSPEC;
+     hint.ai_flags = AI_FQDN;
++
++    /* First resolve user_host, sets user_host and user_shost. */
+     if (getaddrinfo(user_host, NULL, &hint, &res0) != 0) {
+       log_warning(MSG_ONLY, N_("unable to resolve host %s"), user_host);
+     } else {
+       if (user_shost != user_host)
+           efree(user_shost);
+       efree(user_host);
+-      user_host = estrdup(res0->ai_canonname);
++      user_host = user_shost = estrdup(res0->ai_canonname);
+       freeaddrinfo(res0);
+       if ((p = strchr(user_host, '.')) != NULL)
+           user_shost = estrndup(user_host, (size_t)(p - user_host));
+-      else
+-          user_shost = user_host;
+     }
++
++    /* Next resolve user_runhost, sets user_runhost and user_srunhost. */
++    if (remote) {
++      if (getaddrinfo(user_runhost, NULL, &hint, &res0) != 0) {
++          log_warning(MSG_ONLY,
++              N_("unable to resolve host %s"), user_runhost);
++      } else {
++          if (user_srunhost != user_runhost)
++              efree(user_srunhost);
++          efree(user_runhost);
++          user_runhost = user_srunhost = estrdup(res0->ai_canonname);
++          freeaddrinfo(res0);
++          if ((p = strchr(user_runhost, '.'))) {
++              user_srunhost =
++                  estrndup(user_runhost, (size_t)(p - user_runhost));
++          }
++      }
++    } else {
++      /* Not remote, just use user_host. */
++      if (user_srunhost != user_runhost)
++          efree(user_srunhost);
++      efree(user_runhost);
++      user_runhost = user_srunhost = estrdup(user_host);
++      if ((p = strchr(user_runhost, '.'))) {
++          user_srunhost =
++              estrndup(user_runhost, (size_t)(p - user_runhost));
++      }
++    }
++
++    sudo_debug_printf(SUDO_DEBUG_INFO|SUDO_DEBUG_LINENO,
++      "host %s, shost %s, runhost %s, srunhost %s",
++      user_host, user_shost, user_runhost, user_srunhost);
+     debug_return;
+ }
+ 
diff -Nru sudo-1.8.10p3/debian/patches/series 
sudo-1.8.10p3/debian/patches/series
--- sudo-1.8.10p3/debian/patches/series 2014-09-14 18:26:06.000000000 +0200
+++ sudo-1.8.10p3/debian/patches/series 2014-12-05 15:09:41.000000000 +0100
@@ -1,2 +1,3 @@
 typo-in-classic-insults.diff
 paths-in-samples.diff
+Fix-for-broken-FQDN-host-specifications.diff

Reply via email to