unbreak across API change
diff --git a/openbsd-compat/port-tun.c b/openbsd-compat/port-tun.c
index 0d756f7..7b58ea6 100644
--- a/openbsd-compat/port-tun.c
+++ b/openbsd-compat/port-tun.c
@@ -32,8 +32,9 @@
 #include "openbsd-compat/sys-queue.h"
 #include "log.h"
 #include "misc.h"
-#include "buffer.h"
+#include "sshbuf.h"
 #include "channels.h"
+#include "ssherr.h"
 
 /*
  * This is the portable version of the SSH tunnel forwarding, it
@@ -210,6 +211,7 @@
 #endif
 	u_int32_t *af;
 	char *ptr = buf;
+	int r;
 
 #if defined(SSH_TUN_PREPEND_AF)
 	if (len <= 0 || len > (int)(sizeof(rbuf) - sizeof(*af)))
@@ -242,17 +244,20 @@
 		*af = htonl(OPENBSD_AF_INET);
 #endif
 
-	buffer_put_string(&c->input, ptr, len);
+	if ((r = sshbuf_put_string(&c->input, ptr, len)) != 0)
+		fatal("%s: buffer error: %s", __func__, ssh_err(r));
 	return (0);
 }
 
 u_char *
-sys_tun_outfilter(struct Channel *c, u_char **data, u_int *dlen)
+sys_tun_outfilter(struct Channel *c, u_char **data, size_t *dlen)
 {
 	u_char *buf;
 	u_int32_t *af;
+	int r;
 
-	*data = buffer_get_string(&c->output, dlen);
+	if ((r = sshbuf_get_string(&c->output, data, dlen)) != 0)
+		fatal("%s: buffer error: %s", __func__, ssh_err(r));
 	if (*dlen < sizeof(*af))
 		return (NULL);
 	buf = *data;
diff --git a/openbsd-compat/port-tun.h b/openbsd-compat/port-tun.h
index c53df01..e608a45 100644
--- a/openbsd-compat/port-tun.h
+++ b/openbsd-compat/port-tun.h
@@ -27,7 +27,7 @@
 #if defined(SSH_TUN_COMPAT_AF) || defined(SSH_TUN_PREPEND_AF)
 # define SSH_TUN_FILTER
 int	 sys_tun_infilter(struct Channel *, char *, int);
-u_char	*sys_tun_outfilter(struct Channel *, u_char **, u_int *);
+u_char	*sys_tun_outfilter(struct Channel *, u_char **, size_t *);
 #endif
 
 #endif