From 91d8572dfbfe503a53336d4dc23f4a37c48d6f33 Mon Sep 17 00:00:00 2001 From: Vadim Lobanov Date: Sun, 10 Dec 2006 02:21:09 -0800 Subject: [PATCH] --- yaml --- r: 44011 b: refs/heads/master c: f3d19c90fb117a5f080310a4592929aa8e1ad8e9 h: refs/heads/master i: 44009: 9daa69a21bd94cde204bda5619dd467284577119 44007: 54aa199f811e2fd44b3d81a778b2720bee4f91db v: v3 --- [refs] | 2 +- trunk/kernel/fork.c | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 96ce7ad3ef2b..b1621ea2acca 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5eb6c7a2ab413dea1ee6c08dd58263a1c2c2efa3 +refs/heads/master: f3d19c90fb117a5f080310a4592929aa8e1ad8e9 diff --git a/trunk/kernel/fork.c b/trunk/kernel/fork.c index 086e172d0d3d..30eab4f063cd 100644 --- a/trunk/kernel/fork.c +++ b/trunk/kernel/fork.c @@ -711,8 +711,10 @@ static struct files_struct *dup_fd(struct files_struct *oldf, int *errorp) old_fds = old_fdt->fd; new_fds = new_fdt->fd; - memcpy(new_fdt->open_fds->fds_bits, old_fdt->open_fds->fds_bits, open_files/8); - memcpy(new_fdt->close_on_exec->fds_bits, old_fdt->close_on_exec->fds_bits, open_files/8); + memcpy(new_fdt->open_fds->fds_bits, + old_fdt->open_fds->fds_bits, open_files/8); + memcpy(new_fdt->close_on_exec->fds_bits, + old_fdt->close_on_exec->fds_bits, open_files/8); for (i = open_files; i != 0; i--) { struct file *f = *old_fds++; @@ -745,14 +747,11 @@ static struct files_struct *dup_fd(struct files_struct *oldf, int *errorp) memset(&new_fdt->close_on_exec->fds_bits[start], 0, left); } -out: return newf; out_release: - free_fdset (new_fdt->close_on_exec, new_fdt->max_fdset); - free_fdset (new_fdt->open_fds, new_fdt->max_fdset); - free_fd_array(new_fdt->fd, new_fdt->max_fds); kmem_cache_free(files_cachep, newf); +out: return NULL; }