Trap invalid sector size 0 in disk probe, refusing to add such a

device to the list.  This prevents crashes on /0 errors in 'lsdev'
et al.

Reviewed-by:	jhb@
MT5 after:	RE approval
This commit is contained in:
Wes Peters 2004-09-21 06:46:44 +00:00
parent 98da5dfbb2
commit ecaf63f715

View File

@ -209,6 +209,10 @@ bd_int13probe(struct bdinfo *bd)
if (!(v86.efl & 0x1) && /* carry clear */
((v86.edx & 0xff) > ((unsigned)bd->bd_unit & 0x7f))) { /* unit # OK */
if ((v86.ecx & 0x3f) == 0) { /* absurd sector size */
DEBUG("Invalid geometry for unit %d", bd->bd_unit);
return(0); /* skip device */
}
bd->bd_flags |= BD_MODEINT13;
bd->bd_type = v86.ebx & 0xff;