Messages in this thread Patch in this message |  | | From | Praveen Srinivasan <> | Subject | [PATCH] DAC960.c - Null ptr fixes | Date | Thu, 24 May 2001 00:21:25 -0700 |
| |
Hi, Using the Stanford checker, we searched for null-pointer bugs in the linux kernel code. This patch fixes numerous unchecked pointers in the DAC960 driver (DAC960.c).
Praveen Srinivasan and Frederick Akalin
--- ../linux/./drivers/block/DAC960.c Tue Feb 20 21:26:22 2001 +++ ./drivers/block/DAC960.c Mon May 7 21:56:30 2001 @@ -508,6 +508,9 @@ DAC960_Command_T *Command = DAC960_AllocateCommand(Controller); DAC960_V1_CommandMailbox_T *CommandMailbox = &Command->V1.CommandMailbox; DAC960_V1_CommandStatus_T CommandStatus; + if(Command == NULL) { + return 0; + } DAC960_V1_ClearCommand(Command); Command->CommandType = DAC960_ImmediateCommand; CommandMailbox->Type3.CommandOpcode = CommandOpcode; @@ -534,6 +537,9 @@ DAC960_Command_T *Command = DAC960_AllocateCommand(Controller); DAC960_V1_CommandMailbox_T *CommandMailbox = &Command->V1.CommandMailbox; DAC960_V1_CommandStatus_T CommandStatus; + if(Command == NULL) { + return 0; + } DAC960_V1_ClearCommand(Command); Command->CommandType = DAC960_ImmediateCommand; CommandMailbox->Type3D.CommandOpcode = CommandOpcode; @@ -561,6 +567,9 @@ DAC960_Command_T *Command = DAC960_AllocateCommand(Controller); DAC960_V2_CommandMailbox_T *CommandMailbox = &Command->V2.CommandMailbox; DAC960_V2_CommandStatus_T CommandStatus; + if(Command == NULL) { + return 0; + } DAC960_V2_ClearCommand(Command); Command->CommandType = DAC960_ImmediateCommand; CommandMailbox->Common.CommandOpcode = DAC960_V2_IOCTL; @@ -599,6 +608,9 @@ DAC960_Command_T *Command = DAC960_AllocateCommand(Controller); DAC960_V2_CommandMailbox_T *CommandMailbox = &Command->V2.CommandMailbox; DAC960_V2_CommandStatus_T CommandStatus; + if(Command == NULL) { + return 0; + } DAC960_V2_ClearCommand(Command); Command->CommandType = DAC960_ImmediateCommand; CommandMailbox->ControllerInfo.CommandOpcode = DAC960_V2_IOCTL; @@ -641,6 +653,9 @@ DAC960_Command_T *Command = DAC960_AllocateCommand(Controller); DAC960_V2_CommandMailbox_T *CommandMailbox = &Command->V2.CommandMailbox; DAC960_V2_CommandStatus_T CommandStatus; + if(Command == NULL) { + return 0; + } DAC960_V2_ClearCommand(Command); Command->CommandType = DAC960_ImmediateCommand; CommandMailbox->LogicalDeviceInfo.CommandOpcode = DAC960_V2_IOCTL; @@ -685,6 +700,9 @@ DAC960_Command_T *Command = DAC960_AllocateCommand(Controller); DAC960_V2_CommandMailbox_T *CommandMailbox = &Command->V2.CommandMailbox; DAC960_V2_CommandStatus_T CommandStatus; + if(Command == NULL) { + return 0; + } DAC960_V2_ClearCommand(Command); Command->CommandType = DAC960_ImmediateCommand; CommandMailbox->PhysicalDeviceInfo.CommandOpcode = DAC960_V2_IOCTL; @@ -726,6 +744,9 @@ DAC960_Command_T *Command = DAC960_AllocateCommand(Controller); DAC960_V2_CommandMailbox_T *CommandMailbox = &Command->V2.CommandMailbox; DAC960_V2_CommandStatus_T CommandStatus; + if(Command == NULL) { + return 0; + } DAC960_V2_ClearCommand(Command); Command->CommandType = DAC960_ImmediateCommand; CommandMailbox->DeviceOperation.CommandOpcode = DAC960_V2_IOCTL; @@ -1435,8 +1456,12 @@ InquiryUnitSerialNumber; memset(InquiryUnitSerialNumber, 0, sizeof(DAC960_SCSI_Inquiry_UnitSerialNumber_T)); - InquiryUnitSerialNumber->PeripheralDeviceType = 0x1F; + InquiryUnitSerialNumber->PeripheralDeviceType = 0x1F; Command = DAC960_AllocateCommand(Controller); + if(Command == NULL) { + return 0; + } + CommandMailbox = &Command->V2.CommandMailbox; DAC960_V2_ClearCommand(Command); Command->CommandType = DAC960_ImmediateCommand; @@ -6594,6 +6619,10 @@ create_proc_read_entry("user_command", S_IWUSR | S_IRUSR, ControllerProcEntry, DAC960_ProcReadUserCommand, Controller); + if(UserCommandProcEntry == NULL) { + return 0; + } + UserCommandProcEntry->write_proc = DAC960_ProcWriteUserCommand; Controller->ControllerProcEntry = ControllerProcEntry; } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |