mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-02-28 12:05:47 +08:00
* fhandler_raw.cc (fhandler_dev_raw::ioctl): Fix setting devbuf
when rd_parm is 0 or 1.
This commit is contained in:
parent
46bcbf8ce0
commit
bb4e8382c5
@ -1,3 +1,8 @@
|
|||||||
|
2005-12-07 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* fhandler_raw.cc (fhandler_dev_raw::ioctl): Fix setting devbuf
|
||||||
|
when rd_parm is 0 or 1.
|
||||||
|
|
||||||
2005-12-07 Corinna Vinschen <corinna@vinschen.de>
|
2005-12-07 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* fhandler_floppy.cc (fhandler_dev_floppy::lseek): Fix test for
|
* fhandler_floppy.cc (fhandler_dev_floppy::lseek): Fix test for
|
||||||
|
@ -161,7 +161,9 @@ fhandler_dev_raw::ioctl (unsigned int cmd, void *buf)
|
|||||||
ret = ERROR_INVALID_PARAMETER;
|
ret = ERROR_INVALID_PARAMETER;
|
||||||
else if (!devbuf || op->rd_parm != devbufsiz)
|
else if (!devbuf || op->rd_parm != devbufsiz)
|
||||||
{
|
{
|
||||||
char *buf = new char [op->rd_parm];
|
char *buf = NULL;
|
||||||
|
if (op->rd_parm > 1L)
|
||||||
|
buf = new char [op->rd_parm];
|
||||||
if (devbufsiz > 1L)
|
if (devbufsiz > 1L)
|
||||||
{
|
{
|
||||||
memcpy (buf, devbuf + devbufstart, devbufend - devbufstart);
|
memcpy (buf, devbuf + devbufstart, devbufend - devbufstart);
|
||||||
@ -173,7 +175,7 @@ fhandler_dev_raw::ioctl (unsigned int cmd, void *buf)
|
|||||||
|
|
||||||
devbufstart = 0;
|
devbufstart = 0;
|
||||||
devbuf = buf;
|
devbuf = buf;
|
||||||
devbufsiz = op->rd_parm;
|
devbufsiz = op->rd_parm ?: 1L;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -187,7 +189,7 @@ fhandler_dev_raw::ioctl (unsigned int cmd, void *buf)
|
|||||||
if (!get)
|
if (!get)
|
||||||
ret = ERROR_INVALID_PARAMETER;
|
ret = ERROR_INVALID_PARAMETER;
|
||||||
else
|
else
|
||||||
get->bufsiz = devbufsiz ? devbufsiz : 1L;
|
get->bufsiz = devbufsiz ?: 1L;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return fhandler_base::ioctl (cmd, buf);
|
return fhandler_base::ioctl (cmd, buf);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user