Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c62da79e authored by Shivasharan S's avatar Shivasharan S Committed by Greg Kroah-Hartman
Browse files

scsi: megaraid_sas: Check valid aen class range to avoid kernel panic



commit 91b3d9f0069c8307d0b3a4c6843b65a439183318 upstream.

Signed-off-by: default avatarKashyap Desai <kashyap.desai@broadcom.com>
Signed-off-by: default avatarShivasharan S <shivasharan.srikanteshwara@broadcom.com>
Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
Reviewed-by: default avatarTomas Henzl <thenzl@redhat.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 7efc4151
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -5460,6 +5460,14 @@ megasas_register_aen(struct megasas_instance *instance, u32 seq_num,
		prev_aen.word =
		prev_aen.word =
			le32_to_cpu(instance->aen_cmd->frame->dcmd.mbox.w[1]);
			le32_to_cpu(instance->aen_cmd->frame->dcmd.mbox.w[1]);


		if ((curr_aen.members.class < MFI_EVT_CLASS_DEBUG) ||
		    (curr_aen.members.class > MFI_EVT_CLASS_DEAD)) {
			dev_info(&instance->pdev->dev,
				 "%s %d out of range class %d send by application\n",
				 __func__, __LINE__, curr_aen.members.class);
			return 0;
		}

		/*
		/*
		 * A class whose enum value is smaller is inclusive of all
		 * A class whose enum value is smaller is inclusive of all
		 * higher values. If a PROGRESS (= -1) was previously
		 * higher values. If a PROGRESS (= -1) was previously