[PATCH] scx200_acb: Fix resource name use after free
authorJean Delvare <khali@linux-fr.org>
Sat, 13 May 2006 09:17:37 +0000 (11:17 +0200)
committerChris Wright <chrisw@sous-sol.org>
Sat, 20 May 2006 22:00:30 +0000 (15:00 -0700)
We can't pass a string on the stack to request_region. As soon as we
leave the function that stack is gone and the string is lost. Let's
use the same string we identify the i2c_adapter with instead, it's
more simple, more consistent, and just works.

This is the second half of fix to bug #6445.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/i2c/busses/scx200_acb.c

index d3478e08452202851a56d8dc02a65d7efde638a6..ad44dd5359ae226f204ba0e512ffbd8123354519 100644 (file)
@@ -440,7 +440,6 @@ static int  __init scx200_acb_create(int base, int index)
        struct scx200_acb_iface *iface;
        struct i2c_adapter *adapter;
        int rc = 0;
-       char description[64];
 
        iface = kzalloc(sizeof(*iface), GFP_KERNEL);
        if (!iface) {
@@ -459,8 +458,7 @@ static int  __init scx200_acb_create(int base, int index)
 
        init_MUTEX(&iface->sem);
 
-       snprintf(description, sizeof(description), "NatSemi SCx200 ACCESS.bus [%s]", adapter->name);
-       if (request_region(base, 8, description) == 0) {
+       if (!request_region(base, 8, adapter->name)) {
                dev_err(&adapter->dev, "can't allocate io 0x%x-0x%x\n",
                        base, base + 8-1);
                rc = -EBUSY;