lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:	Wed, 11 Nov 2009 14:40:34 -0800
From:	Sukadev Bhattiprolu <sukadev@...ux.vnet.ibm.com>
To:	Andrew Morton <akpm@...l.org>
Cc:	mtk.manpages@...glemail.com, arnd@...db.de,
	Containers <containers@...ts.linux-foundation.org>,
	Nathan Lynch <nathanl@...tin.ibm.com>,
	matthltc@...a.localdomain,
	"Eric W. Biederman" <ebiederm@...ssion.com>, hpa@...or.com,
	linux-api@...r.kernel.org, Alexey Dobriyan <adobriyan@...il.com>,
	roland@...hat.com, Pavel Emelyanov <xemul@...nvz.org>,
	linux-kernel@...r.kernel.org
Subject: Re: [v12][PATCH 7/9] Define do_fork_with_pids()

cc: lkml

Sukadev Bhattiprolu [sukadev@...ux.vnet.ibm.com] wrote:
| 
| Subject: [v12][PATCH 7/9] Define do_fork_with_pids()
| 
| do_fork_with_pids() is same as do_fork(), except that it takes an
| additional, 'pid_set', parameter. This parameter, currently unused,
| specifies the set of target pids of the process in each of its pid
| namespaces.
| 
| Changelog[v7]:
| 	- Drop 'struct pid_set' object and pass in 'pid_t *target_pids'
| 	  instead of 'struct pid_set *'.
| 
| Changelog[v6]:
| 	- (Nathan Lynch, Arnd Bergmann, H. Peter Anvin, Linus Torvalds)
| 	  Change 'pid_set.pids' to a 'pid_t pids[]' so size of 'struct pid_set'
| 	  is constant across architectures.
| 	- (Nathan Lynch) Change 'pid_set.num_pids' to 'unsigned int'.
| 
| Changelog[v4]:
| 	- Rename 'struct target_pid_set' to 'struct pid_set' since it may
| 	  be useful in other contexts.
| 
| Changelog[v3]:
| 	- Fix "long-line" warning from checkpatch.pl
| 
| Changelog[v2]:
| 	- To facilitate moving architecture-inpdendent code to kernel/fork.c
| 	  pass in 'struct target_pid_set __user *' to do_fork_with_pids()
| 	  rather than 'pid_t *' (next patch moves the arch-independent
| 	  code to kernel/fork.c)
| 
| Signed-off-by: Sukadev Bhattiprolu <sukadev@...ux.vnet.ibm.com>
| Acked-by: Serge Hallyn <serue@...ibm.com>
| Reviewed-by: Oren Laadan <orenl@...columbia.edu>
| ---
|  include/linux/sched.h |    3 +++
|  kernel/fork.c         |   17 +++++++++++++++--
|  2 files changed, 18 insertions(+), 2 deletions(-)
| 
| diff --git a/include/linux/sched.h b/include/linux/sched.h
| index a4d2c23..85e971a 100644
| --- a/include/linux/sched.h
| +++ b/include/linux/sched.h
| @@ -2153,6 +2153,9 @@ extern int disallow_signal(int);
| 
|  extern int do_execve(char *, char __user * __user *, char __user * __user *, struct pt_regs *);
|  extern long do_fork(unsigned long, unsigned long, struct pt_regs *, unsigned long, int __user *, int __user *);
| +extern long do_fork_with_pids(unsigned long, unsigned long, struct pt_regs *,
| +				unsigned long, int __user *, int __user *,
| +				unsigned int, pid_t __user *);
|  struct task_struct *fork_idle(int);
| 
|  extern void set_task_comm(struct task_struct *tsk, char *from);
| diff --git a/kernel/fork.c b/kernel/fork.c
| index 11f77ed..210e841 100644
| --- a/kernel/fork.c
| +++ b/kernel/fork.c
| @@ -1377,12 +1377,14 @@ struct task_struct * __cpuinit fork_idle(int cpu)
|   * It copies the process, and if successful kick-starts
|   * it and waits for it to finish using the VM if required.
|   */
| -long do_fork(unsigned long clone_flags,
| +long do_fork_with_pids(unsigned long clone_flags,
|  	      unsigned long stack_start,
|  	      struct pt_regs *regs,
|  	      unsigned long stack_size,
|  	      int __user *parent_tidptr,
| -	      int __user *child_tidptr)
| +	      int __user *child_tidptr,
| +	      unsigned int num_pids,
| +	      pid_t __user *upids)
|  {
|  	struct task_struct *p;
|  	int trace = 0;
| @@ -1485,6 +1487,17 @@ long do_fork(unsigned long clone_flags,
|  	return nr;
|  }
| 
| +long do_fork(unsigned long clone_flags,
| +	      unsigned long stack_start,
| +	      struct pt_regs *regs,
| +	      unsigned long stack_size,
| +	      int __user *parent_tidptr,
| +	      int __user *child_tidptr)
| +{
| +	return do_fork_with_pids(clone_flags, stack_start, regs, stack_size,
| +			parent_tidptr, child_tidptr, 0, NULL);
| +}
| +
|  #ifndef ARCH_MIN_MMSTRUCT_ALIGN
|  #define ARCH_MIN_MMSTRUCT_ALIGN 0
|  #endif
| -- 
| 1.6.0.4
| 
| _______________________________________________
| Containers mailing list
| Containers@...ts.linux-foundation.org
| https://lists.linux-foundation.org/mailman/listinfo/containers
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists