 25-akpm/drivers/block/cciss_scsi.c          |    2 ++
 25-akpm/drivers/hotplug/acpiphp_glue.c      |    1 +
 25-akpm/drivers/isdn/i4l/isdn_x25iface.c    |    1 +
 25-akpm/drivers/isdn/pcbit/drv.c            |    1 +
 25-akpm/drivers/md/dm-ioctl.c               |    2 ++
 25-akpm/drivers/md/dm-target.c              |    1 +
 25-akpm/drivers/media/video/bt819.c         |    1 +
 25-akpm/drivers/media/video/videodev.c      |    4 +++-
 25-akpm/drivers/message/i2o/i2o_core.c      |    3 +--
 25-akpm/drivers/mtd/chips/cfi_cmdset_0001.c |    2 ++
 25-akpm/drivers/mtd/chips/cfi_cmdset_0002.c |    2 ++
 25-akpm/drivers/mtd/chips/sharp.c           |    4 +++-
 12 files changed, 20 insertions(+), 4 deletions(-)

diff -puN drivers/block/cciss_scsi.c~checker-1 drivers/block/cciss_scsi.c
--- 25/drivers/block/cciss_scsi.c~checker-1	Mon May 12 16:14:56 2003
+++ 25-akpm/drivers/block/cciss_scsi.c	Mon May 12 16:14:57 2003
@@ -1082,6 +1082,8 @@ cciss_update_non_disk_devices(int cntl_n
 	}
 	else {
 		printk(KERN_ERR  "cciss: Report physical LUNs failed.\n");
+		kfree(inq_buff);
+		kfree(ld_buff);
 		return;
 	}
 
diff -puN drivers/hotplug/acpiphp_glue.c~checker-1 drivers/hotplug/acpiphp_glue.c
--- 25/drivers/hotplug/acpiphp_glue.c~checker-1	Mon May 12 16:14:56 2003
+++ 25-akpm/drivers/hotplug/acpiphp_glue.c	Mon May 12 16:14:57 2003
@@ -203,6 +203,7 @@ register_slot (acpi_handle handle, u32 l
 
 	if (ACPI_FAILURE(status)) {
 		err("failed to register interrupt notify handler\n");
+		kfree(newfunc);
 		return status;
 	}
 
diff -puN drivers/isdn/i4l/isdn_x25iface.c~checker-1 drivers/isdn/i4l/isdn_x25iface.c
--- 25/drivers/isdn/i4l/isdn_x25iface.c~checker-1	Mon May 12 16:14:56 2003
+++ 25-akpm/drivers/isdn/i4l/isdn_x25iface.c	Mon May 12 16:14:57 2003
@@ -222,6 +222,7 @@ int isdn_x25iface_connect_ind(struct con
 		printk(KERN_WARNING 
 		       "isdn_x25iface_connect_ind while unconfigured %s\n"
 		       , MY_DEVNAME(cprot->net_dev) );
+		if (skb) dev_kfree_skb(skb);
 		return -1;
 	}
 	*state_p = WAN_CONNECTED;
diff -puN drivers/isdn/pcbit/drv.c~checker-1 drivers/isdn/pcbit/drv.c
--- 25/drivers/isdn/pcbit/drv.c~checker-1	Mon May 12 16:14:57 2003
+++ 25-akpm/drivers/isdn/pcbit/drv.c	Mon May 12 16:14:57 2003
@@ -1071,6 +1071,7 @@ static void pcbit_set_msn(struct pcbit_d
 		ptr->msn = kmalloc(len, GFP_ATOMIC);
 		if (!ptr->msn) {
 			printk(KERN_WARNING "kmalloc failed\n");
+			kfree(ptr);
 			return;
 		}
 
diff -puN drivers/md/dm-ioctl.c~checker-1 drivers/md/dm-ioctl.c
--- 25/drivers/md/dm-ioctl.c~checker-1	Mon May 12 16:14:57 2003
+++ 25-akpm/drivers/md/dm-ioctl.c	Mon May 12 16:14:57 2003
@@ -278,6 +278,7 @@ int dm_hash_rename(const char *old, cons
 		DMWARN("asked to rename to an already existing name %s -> %s",
 		       old, new);
 		up_write(&_hash_lock);
+		kfree(new_name);
 		return -EBUSY;
 	}
 
@@ -289,6 +290,7 @@ int dm_hash_rename(const char *old, cons
 		DMWARN("asked to rename a non existent device %s -> %s",
 		       old, new);
 		up_write(&_hash_lock);
+		kfree(new_name);
 		return -ENXIO;
 	}
 
diff -puN drivers/md/dm-target.c~checker-1 drivers/md/dm-target.c
--- 25/drivers/md/dm-target.c~checker-1	Mon May 12 16:14:57 2003
+++ 25-akpm/drivers/md/dm-target.c	Mon May 12 16:14:57 2003
@@ -122,6 +122,7 @@ int dm_register_target(struct target_typ
 		list_add(&ti->list, &_targets);
 
 	up_write(&_lock);
+	if (rv) kfree(ti);
 	return rv;
 }
 
diff -puN drivers/media/video/bt819.c~checker-1 drivers/media/video/bt819.c
--- 25/drivers/media/video/bt819.c~checker-1	Mon May 12 16:14:57 2003
+++ 25-akpm/drivers/media/video/bt819.c	Mon May 12 16:14:57 2003
@@ -167,6 +167,7 @@ static int bt819_attach(struct i2c_adapt
 	decoder = kmalloc(sizeof(struct bt819), GFP_KERNEL);
 	if (decoder == NULL) {
 		MOD_DEC_USE_COUNT;
+		kfree(client);
 		return -ENOMEM;
 	}
 
diff -puN drivers/media/video/videodev.c~checker-1 drivers/media/video/videodev.c
--- 25/drivers/media/video/videodev.c~checker-1	Mon May 12 16:14:57 2003
+++ 25-akpm/drivers/media/video/videodev.c	Mon May 12 16:14:57 2003
@@ -311,8 +311,10 @@ static void videodev_proc_create_dev (st
 		return;
 
 	p = create_proc_entry(name, S_IFREG|S_IRUGO|S_IWUSR, video_dev_proc_entry);
-	if (!p)
+	if (!p) {
+		kfree(d);
 		return;
+	}
 	p->data = vfd;
 	p->read_proc = videodev_proc_read;
 
diff -puN drivers/message/i2o/i2o_core.c~checker-1 drivers/message/i2o/i2o_core.c
--- 25/drivers/message/i2o/i2o_core.c~checker-1	Mon May 12 16:14:57 2003
+++ 25-akpm/drivers/message/i2o/i2o_core.c	Mon May 12 16:14:57 2003
@@ -2018,15 +2018,14 @@ static int i2o_systab_send(struct i2o_co
 	{
 		printk(KERN_ERR "%s: Unable to set SysTab (status=%#x).\n", 
 			iop->name, -ret);
-		kfree(privbuf);
 	}
 	else
 	{
 		dprintk(KERN_INFO "%s: SysTab set.\n", iop->name);
-		kfree(privbuf);
 	}
 	i2o_status_get(iop); // Entered READY state
 
+	kfree(privbuf);
 	return ret;	
 
  }
diff -puN drivers/mtd/chips/cfi_cmdset_0001.c~checker-1 drivers/mtd/chips/cfi_cmdset_0001.c
--- 25/drivers/mtd/chips/cfi_cmdset_0001.c~checker-1	Mon May 12 16:14:57 2003
+++ 25-akpm/drivers/mtd/chips/cfi_cmdset_0001.c	Mon May 12 16:14:57 2003
@@ -203,6 +203,7 @@ static struct mtd_info *cfi_intelext_set
 	if (!mtd->eraseregions) { 
 		printk(KERN_ERR "Failed to allocate memory for MTD erase region info\n");
 		kfree(cfi->cmdset_priv);
+		kfree(mtd);
 		return NULL;
 	}
 	
@@ -227,6 +228,7 @@ static struct mtd_info *cfi_intelext_set
 			printk(KERN_WARNING "Sum of regions (%lx) != total size of set of interleaved chips (%lx)\n", offset, devsize);
 			kfree(mtd->eraseregions);
 			kfree(cfi->cmdset_priv);
+			kfree(mtd);
 			return NULL;
 		}
 
diff -puN drivers/mtd/chips/cfi_cmdset_0002.c~checker-1 drivers/mtd/chips/cfi_cmdset_0002.c
--- 25/drivers/mtd/chips/cfi_cmdset_0002.c~checker-1	Mon May 12 16:14:57 2003
+++ 25-akpm/drivers/mtd/chips/cfi_cmdset_0002.c	Mon May 12 16:14:57 2003
@@ -174,6 +174,7 @@ static struct mtd_info *cfi_amdstd_setup
 		if (!mtd->eraseregions) { 
 			printk(KERN_WARNING "Failed to allocate memory for MTD erase region info\n");
 			kfree(cfi->cmdset_priv);
+			kfree(mtd);
 			return NULL;
 		}
 			
@@ -197,6 +198,7 @@ static struct mtd_info *cfi_amdstd_setup
 			printk(KERN_WARNING "Sum of regions (%lx) != total size of set of interleaved chips (%lx)\n", offset, devsize);
 			kfree(mtd->eraseregions);
 			kfree(cfi->cmdset_priv);
+			kfree(mtd);
 			return NULL;
 		}
 #if 0
diff -puN drivers/mtd/chips/sharp.c~checker-1 drivers/mtd/chips/sharp.c
--- 25/drivers/mtd/chips/sharp.c~checker-1	Mon May 12 16:14:57 2003
+++ 25-akpm/drivers/mtd/chips/sharp.c	Mon May 12 16:14:57 2003
@@ -116,8 +116,10 @@ struct mtd_info *sharp_probe(struct map_
 		return NULL;
 
 	sharp = kmalloc(sizeof(*sharp), GFP_KERNEL);
-	if(!sharp)
+	if(!sharp) {
+		kfree(mtd);
 		return NULL;
+	}
 
 	memset(mtd, 0, sizeof(*mtd));
 

_
