diff --git a/drivers/serial/ptmx.c b/drivers/serial/ptmx.c index f38da9c93fd..ed699dc85df 100644 --- a/drivers/serial/ptmx.c +++ b/drivers/serial/ptmx.c @@ -206,12 +206,10 @@ static int ptmx_open(FAR struct file *filep) /* Open the master device: /dev/ptyN, where N=minor */ snprintf(devname, sizeof(devname), "/dev/pty%d", minor); - memcpy(&temp, filep, sizeof(temp)); - ret = file_open(filep, devname, O_RDWR | O_CLOEXEC); + ret = file_open(&temp, devname, O_RDWR | O_CLOEXEC); DEBUGASSERT(ret >= 0); /* file_open() should never fail */ - - /* Close the multiplexor device: /dev/ptmx */ - + ret = file_dup2(&temp, filep); + DEBUGASSERT(ret >= 0); /* file_dup2() should never fail) */ ret = file_close(&temp); DEBUGASSERT(ret >= 0); /* file_close() should never fail */