libc: fix storing TIOCGWINSZ result

Fixes #3266.
This commit is contained in:
Josef Söntgen 2018-10-26 11:31:31 +02:00 committed by Christian Helmuth
parent a3411c8e96
commit 5af0162b3f

View File

@ -711,8 +711,15 @@ int Libc::Vfs_plugin::ioctl(Libc::File_descriptor *fd, int request, char *argp)
switch (request) {
case TIOCGWINSZ:
opcode = Opcode::IOCTL_OP_TIOCGWINSZ;
break;
{
if (!argp) {
errno = EINVAL;
return -1;
}
opcode = Opcode::IOCTL_OP_TIOCGWINSZ;
break;
}
case TIOCGETA:
{
@ -811,7 +818,7 @@ int Libc::Vfs_plugin::ioctl(Libc::File_descriptor *fd, int request, char *argp)
case TIOCGWINSZ:
{
::winsize *winsize = (::winsize *)arg;
::winsize *winsize = (::winsize *)argp;
winsize->ws_row = out.tiocgwinsz.rows;
winsize->ws_col = out.tiocgwinsz.columns;
return 0;