From: Jörn Engel Date: Wed, 15 Feb 2012 21:51:32 +0000 (-0500) Subject: target: fix use after free in target_report_luns X-Git-Tag: v3.3.1~87 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1459484eea1cb844a9977b6fe49009dd2668c44a;p=thirdparty%2Fkernel%2Fstable.git target: fix use after free in target_report_luns commit 382436f8804fe1cb20b9a2a811a10eb2d8554721 upstream. Fix possible NULL pointer dereference in target_report_luns failure path. Signed-off-by: Joern Engel Signed-off-by: Nicholas Bellinger Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c index edbcabbf85f73..b013437679cda 100644 --- a/drivers/target/target_core_device.c +++ b/drivers/target/target_core_device.c @@ -695,12 +695,12 @@ int target_report_luns(struct se_task *se_task) * See SPC3 r07, page 159. */ done: - transport_kunmap_data_sg(se_cmd); lun_count *= 8; buf[0] = ((lun_count >> 24) & 0xff); buf[1] = ((lun_count >> 16) & 0xff); buf[2] = ((lun_count >> 8) & 0xff); buf[3] = (lun_count & 0xff); + transport_kunmap_data_sg(se_cmd); se_task->task_scsi_status = GOOD; transport_complete_task(se_task, 1);