Don't take attr if dpbp == NULL! OW does some optimizations assuming that
NULL does not point to valid memory, in this case it hurts. git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@969 6ac86273-5f31-0410-b378-82cca8765d1b
This commit is contained in:
parent
7a9c620d82
commit
41edf4f640
@ -228,7 +228,10 @@ COUNT DosDevIOctl(lregs * r)
|
||||
#endif
|
||||
|
||||
dpbp = get_dpb(CharReqHdr.r_unit);
|
||||
attr = dpbp->dpb_device->dh_attr;
|
||||
if (dpbp)
|
||||
attr = dpbp->dpb_device->dh_attr;
|
||||
else if (r->AL != 9)
|
||||
return DE_INVLDDRV;
|
||||
|
||||
switch (r->AL)
|
||||
{
|
||||
@ -239,10 +242,6 @@ COUNT DosDevIOctl(lregs * r)
|
||||
nMode = C_IOCTLOUT;
|
||||
goto IoBlockCommon;
|
||||
case 0x08:
|
||||
if (!dpbp)
|
||||
{
|
||||
return DE_INVLDDRV;
|
||||
}
|
||||
if (attr & ATTR_EXCALLS)
|
||||
{
|
||||
nMode = C_REMMEDIA;
|
||||
@ -277,10 +276,6 @@ COUNT DosDevIOctl(lregs * r)
|
||||
case 0x11:
|
||||
nMode = C_IOCTLQRY;
|
||||
IoBlockCommon:
|
||||
if (!dpbp)
|
||||
{
|
||||
return DE_INVLDDRV;
|
||||
}
|
||||
if (r->AL == 0x0D && (r->CX & ~(0x486B-0x084A)) == 0x084A)
|
||||
{ /* 084A/484A, 084B/484B, 086A/486A, 086B/486B */
|
||||
r->AX = 0; /* (lock/unlock logical/physical volume) */
|
||||
@ -315,10 +310,6 @@ COUNT DosDevIOctl(lregs * r)
|
||||
default: /* 0x0f */
|
||||
nMode = C_SETLDEV;
|
||||
IoLogCommon:
|
||||
if (!dpbp)
|
||||
{
|
||||
return DE_INVLDDRV;
|
||||
}
|
||||
if (attr & ATTR_GENIOCTL)
|
||||
{
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user