Skip to contentSkip to conversation

cr: ipc: don't unlock before calling freeary in error path

PATCH Applied Serge E. Hallyn 2 participants 2 messages May 29, 2009 1 message not in the archive

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 cr: ipc: don't unlock before calling freeary in error path

Else freeary will BUG out.

---
 ipc/checkpoint_sem.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)
ipc/checkpoint_sem.c +2 -3
index 34dea40..e6934dc 100644
@@ -206,12 +206,11 @@ int restore_ipc_sem(struct ckpt_ctx *ctx)
 	memcpy(sem->sem_base, sma, sem->sem_nsems * sizeof(*sma));
 
 	ret = load_ipc_sem_hdr(ctx, h, sem);
-	ipc_unlock(perms);
-
 	if (ret < 0) {
 		ckpt_debug("sem: need to remove (%d)\n", ret);
 		freeary(current->nsproxy->ipc_ns, perms);
-	}
+	} else
+		ipc_unlock(perms);
 	up_write(&sem_ids->rw_mutex);
  out:
 	kfree(sma);
Signature · 1 line
1.6.1

A message that is not in the archive (sent off-list or not yet received): 20090529202306.GA11982-r/[email protected]

Applied
#2 lore raw

Applied to ckpt-v16-dev.

As per Dave's note, it will be helpful if you mention which patches in the original patchset are affected by this one, e.g. I added:

    [re commit 615744ad97 ... c/r: support share-memory sysv-ipc]

Will make it easier to create the next clean patchset.

Thanks :)

Oren.

Quoted 26 lines · Serge E. Hallyn

Else freeary will BUG out.

---
 ipc/checkpoint_sem.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)
ipc/checkpoint_sem.c +2 -3
index 34dea40..e6934dc 100644
@@ -206,12 +206,11 @@ int restore_ipc_sem(struct ckpt_ctx *ctx)
 	memcpy(sem->sem_base, sma, sem->sem_nsems * sizeof(*sma));
 
 	ret = load_ipc_sem_hdr(ctx, h, sem);
-	ipc_unlock(perms);
-
 	if (ret < 0) {
 		ckpt_debug("sem: need to remove (%d)\n", ret);
 		freeary(current->nsproxy->ipc_ns, perms);
-	}
+	} else
+		ipc_unlock(perms);
 	up_write(&sem_ids->rw_mutex);
  out:
 	kfree(sma);