In drivers/scsi/sd.c:sd_probe:

        int index;
...
        spin_lock(&sd_index_lock);
        error = idr_get_new(&sd_index_idr, NULL, &index);
        spin_unlock(&sd_index_lock);

        if (index >= SD_MAX_DISKS)
                error = -EBUSY;
        if (error)
                goto out_put;

Note that if idr_get_new() fails, index remains uninitialized.  If it
happens to be >= SD_MAX_DISKS, the error returned from idr_get_new will
be clobbered.  Patch initializes index to zero.

Signed-off-by: Kenn Humborg <[EMAIL PROTECTED]>


--- src/drivers/scsi/sd.c-2.6.10        2005-02-25 21:02:17.035529833 +0000
+++ src/drivers/scsi/sd.c       2005-02-25 21:03:09.057517937 +0000
@@ -1409,7 +1409,7 @@
        struct scsi_device *sdp = to_scsi_device(dev);
        struct scsi_disk *sdkp;
        struct gendisk *gd;
-       u32 index;
+       u32 index = 0;
        int error;
 
        error = -ENODEV;
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to