scsi: aic7xxx: aic79xx: fix potential null pointer dereference on ahd
If AHD_DEBUG is enabled and ahd_platform_alloc fails then ahd is set to null and the debug printk dereferences ahd when passing it to ahd_name. Fix this by moving the debug printk to before the call to ahd_platform_alloc where ahd is not null at that point. Detected by CoverityScan, CID#100296 ("Explicit null dereference") Signed-off-by: Colin Ian King <colin.king@canonical.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
10ee1f2206
commit
e73c864ba3
|
@ -6112,10 +6112,6 @@ ahd_alloc(void *platform_arg, char *name)
|
||||||
ahd->int_coalescing_stop_threshold =
|
ahd->int_coalescing_stop_threshold =
|
||||||
AHD_INT_COALESCING_STOP_THRESHOLD_DEFAULT;
|
AHD_INT_COALESCING_STOP_THRESHOLD_DEFAULT;
|
||||||
|
|
||||||
if (ahd_platform_alloc(ahd, platform_arg) != 0) {
|
|
||||||
ahd_free(ahd);
|
|
||||||
ahd = NULL;
|
|
||||||
}
|
|
||||||
#ifdef AHD_DEBUG
|
#ifdef AHD_DEBUG
|
||||||
if ((ahd_debug & AHD_SHOW_MEMORY) != 0) {
|
if ((ahd_debug & AHD_SHOW_MEMORY) != 0) {
|
||||||
printk("%s: scb size = 0x%x, hscb size = 0x%x\n",
|
printk("%s: scb size = 0x%x, hscb size = 0x%x\n",
|
||||||
|
@ -6123,6 +6119,10 @@ ahd_alloc(void *platform_arg, char *name)
|
||||||
(u_int)sizeof(struct hardware_scb));
|
(u_int)sizeof(struct hardware_scb));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
if (ahd_platform_alloc(ahd, platform_arg) != 0) {
|
||||||
|
ahd_free(ahd);
|
||||||
|
ahd = NULL;
|
||||||
|
}
|
||||||
return (ahd);
|
return (ahd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue