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

Bug#857697: marked as done (unblock: netcat-openbsd/1.130-3)



Your message dated Wed, 15 Mar 2017 20:27:21 +0000
with message-id <E1coFVx-0005zO-3p@respighi.debian.org>
and subject line unblock netcat-openbsd
has caused the Debian Bug report #857697,
regarding unblock: netcat-openbsd/1.130-3
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 owner@bugs.debian.org
immediately.)


-- 
857697: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=857697
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package netcat-openbsd

Since 1.110 nc(1) no longer shutdown network sockets when stdin closes.
This is a deliberate upstream decision, which can be reverted with the
new ‘-N’ flag [0].

For better compatibility with GNU netcat we've added a quit timer
(defaulting to -q0 since 1.89-4) to quit immediately after EOF.  However
our patch wasn't modified properly, and the upstream's new behavior with
respect to shutdown(2) lead to a regression in 1.130-1 and 1.130-2.

I'd like to upload 1.130-3 to Stretch as the regression affects libvirt
and QEMU users which use nc(1) to talk to remote hypervisor sockets, cf.
#854292.  Since 1.130-3 nc(1) defaults to ‘-q-1’ (matching upstream's
behavior), and ‘-q0’ is a mere alias for ‘-N’ (it was a no-op before).
Furthermore the new patch is also simpler, so we're reducing our delta
with upstream :-).  Debdiff enclosed.

unblock netcat-openbsd/1.130-3

-- 
Guilhem.

[0] http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/nc/netcat.c?rev=1.111&content-type=text/x-cvsweb-markup
[1] https://anonscm.debian.org/cgit/collab-maint/netcat-openbsd.git/tree/debian/patches/0005-quit-timer.patch
diff -Nru netcat-openbsd-1.130/debian/changelog netcat-openbsd-1.130/debian/changelog
--- netcat-openbsd-1.130/debian/changelog	2017-01-26 09:51:13.000000000 +0100
+++ netcat-openbsd-1.130/debian/changelog	2017-03-06 09:48:36.000000000 +0100
@@ -1,3 +1,12 @@
+netcat-openbsd (1.130-3) unstable; urgency=medium
+
+  * Change defaults from "-q0" to "-q-1" to match upstream defaults since the
+    introduction of flag "-N" in version 1.110.  Passing a non-negative value
+    to "-q" now implies "-N"; in particular, "-q0" is now a mere alias for
+    "-N". (Closes: #854292)
+
+ -- Guilhem Moulin <guilhem@guilhem.org>  Fri, 03 Mar 2017 20:32:55 +0100
+
 netcat-openbsd (1.130-2) unstable; urgency=medium
 
   * Fix handling of delayed exit option (Closes: #849192, LP: #1656785)
diff -Nru netcat-openbsd-1.130/debian/patches/0005-quit-timer.patch netcat-openbsd-1.130/debian/patches/0005-quit-timer.patch
--- netcat-openbsd-1.130/debian/patches/0005-quit-timer.patch	2017-01-26 09:51:13.000000000 +0100
+++ netcat-openbsd-1.130/debian/patches/0005-quit-timer.patch	2017-03-06 09:45:02.000000000 +0100
@@ -19,14 +19,19 @@
  .Op Fl s Ar source
  .Op Fl T Ar toskeyword
  .Op Fl V Ar rtable
-@@ -171,6 +172,10 @@ Proxy authentication is only supported for HTTP CONNECT proxies at present.
+@@ -171,6 +172,15 @@ Proxy authentication is only supported for HTTP CONNECT proxies at present.
  Specifies the source port
  .Nm
  should use, subject to privilege restrictions and availability.
 +.It Fl q Ar seconds
-+after EOF on stdin, wait the specified number of seconds and then quit. If
++after EOF on stdin, wait the specified number of
 +.Ar seconds
-+is negative, wait forever.
++and then quit. If
++.Ar seconds
++is negative, wait forever (default).  Specifying a non-negative
++.Ar seconds
++implies
++.Fl N .
  .It Fl r
  Specifies that source and/or destination ports should be chosen randomly
  instead of sequentially within a range or in the order that the system
@@ -38,21 +43,20 @@
  int	nflag;					/* Don't do name look up */
  char   *Pflag;					/* Proxy username */
  char   *pflag;					/* Localport flag */
-+int     qflag = 0;                             /* Quit after some secs */
++int    qflag = -1;				/* Quit after some secs */
  int	rflag;					/* Random ports flag */
  char   *sflag;					/* Source Address */
  int	tflag;					/* Telnet Emulation */
-@@ -171,6 +172,9 @@ ssize_t fillbuf(int, unsigned char *, size_t *);
+@@ -171,6 +172,8 @@ ssize_t fillbuf(int, unsigned char *, size_t *);
  static int connect_with_timeout(int fd, const struct sockaddr *sa,
          socklen_t salen, int ctimeout);
  
-+int	quit_fd = -1;
 +static void quit();
 +
  int
  main(int argc, char *argv[])
  {
-@@ -195,7 +199,7 @@ main(int argc, char *argv[])
+@@ -195,7 +198,7 @@ main(int argc, char *argv[])
  	signal(SIGPIPE, SIG_IGN);
  
  	while ((ch = getopt(argc, argv,
@@ -61,7 +65,7 @@
  		switch (ch) {
  		case '4':
  			family = AF_INET;
-@@ -248,6 +252,11 @@ main(int argc, char *argv[])
+@@ -248,6 +251,13 @@ main(int argc, char *argv[])
  		case 'p':
  			pflag = optarg;
  			break;
@@ -69,49 +73,43 @@
 +			qflag = strtonum(optarg, INT_MIN, INT_MAX, &errstr);
 +			if (errstr)
 +				errx(1, "quit timer %s: %s", errstr, optarg);
++			if (qflag >= 0)
++				Nflag = 1;
 +			break;
  		case 'r':
  			rflag = 1;
  			break;
-@@ -917,19 +926,31 @@ readwrite(int net_fd)
- 		/* both inputs are gone, buffers are empty, we are done */
+@@ -918,18 +928,26 @@ readwrite(int net_fd)
  		if (pfd[POLL_STDIN].fd == -1 && pfd[POLL_NETIN].fd == -1
  		    && stdinbufpos == 0 && netinbufpos == 0) {
--			close(net_fd);
+ 			close(net_fd);
 -			return;
-+			if (qflag == 0) {
-+				close(net_fd);
++			if (qflag <= 0)
 +				return;
-+			}
 +			goto delay_exit;
  		}
  		/* both outputs are gone, we can't continue */
  		if (pfd[POLL_NETOUT].fd == -1 && pfd[POLL_STDOUT].fd == -1) {
--			close(net_fd);
+ 			close(net_fd);
 -			return;
-+			if (qflag == 0) {
-+				close(net_fd);
++			if (qflag <= 0)
 +				return;
-+			}
 +			goto delay_exit;
  		}
  		/* listen and net in gone, queues empty, done */
  		if (lflag && pfd[POLL_NETIN].fd == -1
  		    && stdinbufpos == 0 && netinbufpos == 0) {
--			close(net_fd);
+ 			close(net_fd);
 -			return;
-+			if (qflag == 0) {
-+				close(net_fd);
++			if (qflag <= 0)
 +				return;
-+			}
 +delay_exit:
-+			quit_fd = net_fd;
 +			signal(SIGALRM, quit);
 +			alarm(qflag);
  		}
  
  		/* poll */
-@@ -1436,6 +1457,7 @@ help(void)
+@@ -1436,6 +1454,7 @@ help(void)
  	\t-O length	TCP send buffer length\n\
  	\t-P proxyuser\tUsername for proxy authentication\n\
  	\t-p port\t	Specify local port for remote connects\n\
@@ -119,7 +117,7 @@
  	\t-r		Randomize remote ports\n\
  	\t-S		Enable the TCP MD5 signature option\n\
  	\t-s addr\t	Local source address\n\
-@@ -1458,9 +1480,21 @@ usage(int ret)
+@@ -1458,9 +1477,18 @@ usage(int ret)
  {
  	fprintf(stderr,
  	    "usage: nc [-46CDdFhklNnrStUuvz] [-I length] [-i interval] [-O length]\n"
@@ -138,8 +136,5 @@
 + */
 +static void quit()
 +{
-+        if (quit_fd >= 0)
-+		close(quit_fd);
-+
-+        exit(0);
++	exit(0);
 +}

Attachment: signature.asc
Description: PGP signature


--- End Message ---
--- Begin Message ---
Unblocked.

--- End Message ---

Reply to: