[PATCH 2/7] dlm: check allocation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



We were assuming the success of an allocation.  Problem noticed
by Stefan Richter <[email protected]>

Signed-off-by: David Teigland <[email protected]>

Index: linux/drivers/dlm/device.c
===================================================================
--- linux.orig/drivers/dlm/device.c
+++ linux/drivers/dlm/device.c
@@ -802,6 +802,8 @@ static int do_user_lock(struct file_info
 		   lockinfo again */
 		if (!li && (kparams->flags & DLM_LKF_PERSISTENT)) {
 			li = allocate_lockinfo(fi, cmd, kparams);
+			if (!li)
+				return -ENOMEM;
 
 			li->li_lksb.sb_lkid = kparams->lkid;
 			li->li_castaddr  = kparams->castaddr;
@@ -914,12 +916,12 @@ static int do_user_unlock(struct file_in
 	li = get_lockinfo(kparams->lkid);
 	if (!li) {
 		li = allocate_lockinfo(fi, cmd, kparams);
+		if (!li)
+			return -ENOMEM;
 		spin_lock(&fi->fi_li_lock);
 		list_add(&li->li_ownerqueue, &fi->fi_li_list);
 		spin_unlock(&fi->fi_li_lock);
 	}
- 	if (!li)
-		return -ENOMEM;
 
 	if (li->li_magic != LOCKINFO_MAGIC)
 		return -EINVAL;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux