public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] CRED: Further fix execve error handling
@ 2008-08-20 13:56 David Howells
  2008-08-20 14:21 ` Alexander Beregalov
  2008-08-20 22:37 ` James Morris
  0 siblings, 2 replies; 6+ messages in thread
From: David Howells @ 2008-08-20 13:56 UTC (permalink / raw)
  To: jmorris, a.beregalov; +Cc: dhowells, linux-kernel, linux-security-module

Further fix [compat_]do_execve() error handling.  free_bprm() will release the
cred_exec_mutex, but only if bprm->cred is not NULL.

Signed-off-by: David Howells <dhowells@redhat.com>
---

 fs/compat.c |    3 ++-
 fs/exec.c   |    3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)


diff --git a/fs/compat.c b/fs/compat.c
index af24b8a..918f0f2 100644
--- a/fs/compat.c
+++ b/fs/compat.c
@@ -1373,7 +1373,7 @@ int compat_do_execve(char * filename,
 	file = open_exec(filename);
 	retval = PTR_ERR(file);
 	if (IS_ERR(file))
-		goto out_unlock;
+		goto out_free;
 
 	sched_exec();
 
@@ -1427,6 +1427,7 @@ out_file:
 		allow_write_access(bprm->file);
 		fput(bprm->file);
 	}
+	goto out_free;
 
 out_unlock:
 	mutex_unlock(&current->cred_exec_mutex);
diff --git a/fs/exec.c b/fs/exec.c
index 4b31a72..7b71679 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -1319,7 +1319,7 @@ int do_execve(char * filename,
 	file = open_exec(filename);
 	retval = PTR_ERR(file);
 	if (IS_ERR(file))
-		goto out_unlock;
+		goto out_free;
 
 	sched_exec();
 
@@ -1376,6 +1376,7 @@ out_file:
 		allow_write_access(bprm->file);
 		fput(bprm->file);
 	}
+	goto out_free;
 
 out_unlock:
 	mutex_unlock(&current->cred_exec_mutex);


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-08-21 12:43 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-20 13:56 [PATCH] CRED: Further fix execve error handling David Howells
2008-08-20 14:21 ` Alexander Beregalov
2008-08-20 15:07   ` David Howells
2008-08-20 16:33   ` Alan Cox
2008-08-20 22:37 ` James Morris
2008-08-21 12:43   ` David Howells

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox