Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=92631fa4d0afa64b82144eab714fbf2f4049dabe
Commit:     92631fa4d0afa64b82144eab714fbf2f4049dabe
Parent:     99d4d0a9f251a87e0710c6f1fb46ac0d4bce12cb
Author:     Jesper Juhl <[EMAIL PROTECTED]>
AuthorDate: Sat Jul 28 01:13:33 2007 +0200
Committer:  James Bottomley <[EMAIL PROTECTED]>
CommitDate: Sat Jul 28 10:58:28 2007 -0400

    [SCSI] libsas: Fix potential NULL dereference in sas_smp_get_phy_events()
    
    In sas_smp_get_phy_events() we never test if the call to
    alloc_smp_req(RPEL_REQ_SIZE) succeeds or fails. That means we run
    the risk of dereferencing a NULL pointer if it does fail. Far
    better to test if we got NULL back and in that case return -ENOMEM
    just as we already do for the other memory allocation in that
    function.
    
    Signed-off-by: Jesper Juhl <[EMAIL PROTECTED]>
    Signed-off-by: James Bottomley <[EMAIL PROTECTED]>
---
 drivers/scsi/libsas/sas_expander.c |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/scsi/libsas/sas_expander.c 
b/drivers/scsi/libsas/sas_expander.c
index 8603ae6..8727436 100644
--- a/drivers/scsi/libsas/sas_expander.c
+++ b/drivers/scsi/libsas/sas_expander.c
@@ -507,14 +507,21 @@ static int sas_dev_present_in_domain(struct asd_sas_port 
*port,
 int sas_smp_get_phy_events(struct sas_phy *phy)
 {
        int res;
+       u8 *req;
+       u8 *resp;
        struct sas_rphy *rphy = dev_to_rphy(phy->dev.parent);
        struct domain_device *dev = sas_find_dev_by_rphy(rphy);
-       u8 *req = alloc_smp_req(RPEL_REQ_SIZE);
-       u8 *resp = kzalloc(RPEL_RESP_SIZE, GFP_KERNEL);
 
-       if (!resp)
+       req = alloc_smp_req(RPEL_REQ_SIZE);
+       if (!req)
                return -ENOMEM;
 
+       resp = alloc_smp_resp(RPEL_RESP_SIZE);
+       if (!resp) {
+               kfree(req);
+               return -ENOMEM;
+       }
+
        req[1] = SMP_REPORT_PHY_ERR_LOG;
        req[9] = phy->number;
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to