+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>
* fhandler_floppy.cc (fhandler_dev_floppy::lseek): Fix test for
ret = ERROR_INVALID_PARAMETER;
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)
{
memcpy (buf, devbuf + devbufstart, devbufend - devbufstart);
devbufstart = 0;
devbuf = buf;
- devbufsiz = op->rd_parm;
+ devbufsiz = op->rd_parm ?: 1L;
}
break;
default:
if (!get)
ret = ERROR_INVALID_PARAMETER;
else
- get->bufsiz = devbufsiz ? devbufsiz : 1L;
+ get->bufsiz = devbufsiz ?: 1L;
}
else
return fhandler_base::ioctl (cmd, buf);