upstream commit

write the correct buffer when tunnel forwarding; doesn't
matter on OpenBSD (they are the same) but does matter on portable where we
use an output filter to translate os-specific tun/tap headers

Upstream-ID: f1ca94eff48404827b12e1d12f6139ee99a72284
diff --git a/channels.c b/channels.c
index b3c490e..6a55d3b 100644
--- a/channels.c
+++ b/channels.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: channels.c,v 1.373 2017/09/23 22:04:07 djm Exp $ */
+/* $OpenBSD: channels.c,v 1.374 2017/09/24 09:50:01 djm Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -1941,7 +1941,7 @@
 
 	if (c->datagram) {
 		/* ignore truncated writes, datagrams might get lost */
-		len = write(c->wfd, data, dlen);
+		len = write(c->wfd, buf, dlen);
 		free(data);
 		if (len < 0 && (errno == EINTR || errno == EAGAIN ||
 		    errno == EWOULDBLOCK))