kludge around tun API mismatch betterer

This commit is contained in:
Damien Miller 2015-01-15 03:08:29 +11:00
parent c332110291
commit bc42cc6fe7
2 changed files with 7 additions and 3 deletions

View File

@ -250,14 +250,18 @@ sys_tun_infilter(struct Channel *c, char *buf, int len)
} }
u_char * u_char *
sys_tun_outfilter(struct Channel *c, u_char **data, size_t *dlen) sys_tun_outfilter(struct Channel *c, u_char **data, u_int *dlen)
{ {
u_char *buf; u_char *buf;
u_int32_t *af; u_int32_t *af;
int r; int r;
size_t xxx_dlen;
if ((r = sshbuf_get_string(&c->output, data, dlen)) != 0) /* XXX new API is incompatible with this signature. */
if ((r = sshbuf_get_string(&c->output, data, &xxx_dlen)) != 0)
fatal("%s: buffer error: %s", __func__, ssh_err(r)); fatal("%s: buffer error: %s", __func__, ssh_err(r));
if (dlen != NULL)
*dlen = xxx_dlen;
if (*dlen < sizeof(*af)) if (*dlen < sizeof(*af))
return (NULL); return (NULL);
buf = *data; buf = *data;

View File

@ -27,7 +27,7 @@ int sys_tun_open(int, int);
#if defined(SSH_TUN_COMPAT_AF) || defined(SSH_TUN_PREPEND_AF) #if defined(SSH_TUN_COMPAT_AF) || defined(SSH_TUN_PREPEND_AF)
# define SSH_TUN_FILTER # define SSH_TUN_FILTER
int sys_tun_infilter(struct Channel *, char *, int); int sys_tun_infilter(struct Channel *, char *, int);
u_char *sys_tun_outfilter(struct Channel *, u_char **, size_t *); u_char *sys_tun_outfilter(struct Channel *, u_char **, u_int *);
#endif #endif
#endif #endif