[PATCH] dup fd error fix
Set errorp in dup_fd, it will be used in sys_unshare also. Signed-off-by: Prasanna Meda <mlp@google.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
538c5902b8
commit
6e66726047
1 changed files with 2 additions and 1 deletions
|
@ -625,6 +625,7 @@ static struct files_struct *alloc_files(void)
|
||||||
/*
|
/*
|
||||||
* Allocate a new files structure and copy contents from the
|
* Allocate a new files structure and copy contents from the
|
||||||
* passed in files structure.
|
* passed in files structure.
|
||||||
|
* errorp will be valid only when the returned files_struct is NULL.
|
||||||
*/
|
*/
|
||||||
static struct files_struct *dup_fd(struct files_struct *oldf, int *errorp)
|
static struct files_struct *dup_fd(struct files_struct *oldf, int *errorp)
|
||||||
{
|
{
|
||||||
|
@ -633,6 +634,7 @@ static struct files_struct *dup_fd(struct files_struct *oldf, int *errorp)
|
||||||
int open_files, size, i, expand;
|
int open_files, size, i, expand;
|
||||||
struct fdtable *old_fdt, *new_fdt;
|
struct fdtable *old_fdt, *new_fdt;
|
||||||
|
|
||||||
|
*errorp = -ENOMEM;
|
||||||
newf = alloc_files();
|
newf = alloc_files();
|
||||||
if (!newf)
|
if (!newf)
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -746,7 +748,6 @@ static int copy_files(unsigned long clone_flags, struct task_struct * tsk)
|
||||||
* break this.
|
* break this.
|
||||||
*/
|
*/
|
||||||
tsk->files = NULL;
|
tsk->files = NULL;
|
||||||
error = -ENOMEM;
|
|
||||||
newf = dup_fd(oldf, &error);
|
newf = dup_fd(oldf, &error);
|
||||||
if (!newf)
|
if (!newf)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
Loading…
Reference in a new issue