Skip to contentSkip to conversation

mtip32xx: fix potential crash on SEC_ERASE_UNIT

PATCH RESEND New Alan Cox 1 participant 1 message Oct 25, 2012 Block layer

lore
Share & tools
lore

Alan Cox

author
#0 lore raw

PATCH RESEND 1/1 mtip32xx: fix potential crash on SEC_ERASE_UNIT

(Resending to the list as the maintainer is not responding to direct email)

From: Alan Cox <[email protected]>

The mtip driver lifted this code from elsewhere and then added a special handling check for SEC_ERASE_UNIT. If the caller tries to do a security erase but passes no output data for the command then outbuf is not allocated and the driver duly explodes.

---

 drivers/block/mtip32xx/mtip32xx.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/block/mtip32xx/mtip32xx.c +2 -2
index adc6f36..d11e9e7 100644
@@ -2218,8 +2218,8 @@ static int exec_drive_taskfile(struct driver_data *dd,
 		fis.device);
 
 	/* check for erase mode support during secure erase.*/
-	if ((fis.command == ATA_CMD_SEC_ERASE_UNIT)
-					&& (outbuf[0] & MTIP_SEC_ERASE_MODE)) {
+	if (fis.command == ATA_CMD_SEC_ERASE_UNIT && outbuf &&
+					(outbuf[0] & MTIP_SEC_ERASE_MODE)) {
 		erasemode = 1;
 	}