Fix potentially incorrect speed check
We don't know if tio is termios or termios2.
This commit is contained in:
+5
-4
@@ -787,7 +787,7 @@ ttynvt_ioctl(fuse_req_t req, int cmd, void *arg,
|
|||||||
ttynvt_t *tty = (ttynvt_t *) (uintptr_t) info->fh;
|
ttynvt_t *tty = (ttynvt_t *) (uintptr_t) info->fh;
|
||||||
struct termios2 *tio = &tty->tio;
|
struct termios2 *tio = &tty->tio;
|
||||||
struct winsize ws;
|
struct winsize ws;
|
||||||
unsigned int tiocm = 0;
|
unsigned int tiocm, baud;
|
||||||
int mcr;
|
int mcr;
|
||||||
int val;
|
int val;
|
||||||
int res;
|
int res;
|
||||||
@@ -805,17 +805,18 @@ ttynvt_ioctl(fuse_req_t req, int cmd, void *arg,
|
|||||||
case TCSETS:
|
case TCSETS:
|
||||||
CHECK_BUF_IN(sizeof(struct termios));
|
CHECK_BUF_IN(sizeof(struct termios));
|
||||||
memcpy(tio, in_buf, in_bufsz);
|
memcpy(tio, in_buf, in_bufsz);
|
||||||
byte4 = htonl(_tio_baud(tio));
|
baud = _tio_baud(tio);
|
||||||
goto do_tcset;
|
goto do_tcset;
|
||||||
case TCSETSF2:
|
case TCSETSF2:
|
||||||
case TCSETSW2:
|
case TCSETSW2:
|
||||||
case TCSETS2:
|
case TCSETS2:
|
||||||
CHECK_BUF_IN(sizeof(struct termios2));
|
CHECK_BUF_IN(sizeof(struct termios2));
|
||||||
memcpy(tio, in_buf, in_bufsz);
|
memcpy(tio, in_buf, in_bufsz);
|
||||||
byte4 = htonl(_tio2_baud(tio));
|
baud = _tio2_baud(tio);
|
||||||
goto do_tcset;
|
goto do_tcset;
|
||||||
do_tcset:
|
do_tcset:
|
||||||
/* BEWARE of termios/termios2 buf structure difference! */
|
/* BEWARE of termios/termios2 buf structure difference! */
|
||||||
|
byte4 = htonl(baud);
|
||||||
telnet_rfc2217_cfg(tty->tn, TNS_SET_BAUDRATE, &byte4, 4);
|
telnet_rfc2217_cfg(tty->tn, TNS_SET_BAUDRATE, &byte4, 4);
|
||||||
|
|
||||||
byte = _tio_csize(tio);
|
byte = _tio_csize(tio);
|
||||||
@@ -838,7 +839,7 @@ ttynvt_ioctl(fuse_req_t req, int cmd, void *arg,
|
|||||||
telnet_rfc2217_ctl(tty->tn, TNS_CTL_NOFLOW);
|
telnet_rfc2217_ctl(tty->tn, TNS_CTL_NOFLOW);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(tty->cmcr & TIOCM_DTR) && _tio_baud(tio) != 0)
|
if (!(tty->cmcr & TIOCM_DTR) && baud != 0)
|
||||||
{
|
{
|
||||||
tty->cmcr |= TIOCM_DTR;
|
tty->cmcr |= TIOCM_DTR;
|
||||||
telnet_rfc2217_ctl(tty->tn, TNS_CTL_DTR_ON);
|
telnet_rfc2217_ctl(tty->tn, TNS_CTL_DTR_ON);
|
||||||
|
|||||||
Reference in New Issue
Block a user