On Wed, Oct 10, 2012 at 01:54:08PM -0700, Andrew Morton wrote:
> On Thu, 11 Oct 2012 00:42:56 +0400
> Cyrill Gorcunov wrote:
>
> > The free_pid_ns function done in recursion fashion:
> >
> > free_pid_ns(parent)
> > put_pid_ns(parent)
> > kref_put(&ns->kref, free_pid_ns);
> > free_pid
Andrew Morton writes:
> On Thu, 11 Oct 2012 00:42:56 +0400
> Cyrill Gorcunov wrote:
>
>> The free_pid_ns function done in recursion fashion:
>>
>> free_pid_ns(parent)
>> put_pid_ns(parent)
>> kref_put(&ns->kref, free_pid_ns);
>> free_pid_ns
>>
>> thus if there was a huge nesting of
On Thu, 11 Oct 2012 00:42:56 +0400
Cyrill Gorcunov wrote:
> The free_pid_ns function done in recursion fashion:
>
> free_pid_ns(parent)
> put_pid_ns(parent)
> kref_put(&ns->kref, free_pid_ns);
> free_pid_ns
>
> thus if there was a huge nesting of namespaces the userspace
> may trigg
The free_pid_ns function done in recursion fashion:
free_pid_ns(parent)
put_pid_ns(parent)
kref_put(&ns->kref, free_pid_ns);
free_pid_ns
thus if there was a huge nesting of namespaces the userspace
may trigger avalanche calling of free_pid_ns leading to
kernel stack exhausting and a p
On Wed, Oct 10, 2012 at 05:12:21PM +0800, Xiaotian Feng wrote:
> >
> > Is a kref even the correct thing here?
>
> Can we fix this by this way? free_pid_ns just release ns itself, we check
> the return value of kref_put, if kref_put returns 1, means ns->kref is
> removed,
> then we kref_put(ns->pa
On Wed, Oct 10, 2012 at 5:12 PM, Xiaotian Feng wrote:
> On Wed, Oct 10, 2012 at 3:49 PM, Greg KH wrote:
>> On Tue, Oct 09, 2012 at 12:08:31PM -0700, Andrew Morton wrote:
>>> On Tue, 9 Oct 2012 12:03:00 -0700
>>> Greg KH wrote:
>>>
>>> > On Tue, Oct 09, 2012 at 11:48:21AM -0700, Andrew Morton wro
On Wed, Oct 10, 2012 at 3:49 PM, Greg KH wrote:
> On Tue, Oct 09, 2012 at 12:08:31PM -0700, Andrew Morton wrote:
>> On Tue, 9 Oct 2012 12:03:00 -0700
>> Greg KH wrote:
>>
>> > On Tue, Oct 09, 2012 at 11:48:21AM -0700, Andrew Morton wrote:
>> > > On Sat, 6 Oct 2012 23:56:33 +0400
>> > > Andrew Va
On Tue, Oct 09, 2012 at 12:08:31PM -0700, Andrew Morton wrote:
> On Tue, 9 Oct 2012 12:03:00 -0700
> Greg KH wrote:
>
> > On Tue, Oct 09, 2012 at 11:48:21AM -0700, Andrew Morton wrote:
> > > On Sat, 6 Oct 2012 23:56:33 +0400
> > > Andrew Vagin wrote:
> > >
> > > > Here is a stack trace of recu
On Tue, 9 Oct 2012 12:03:00 -0700
Greg KH wrote:
> On Tue, Oct 09, 2012 at 11:48:21AM -0700, Andrew Morton wrote:
> > On Sat, 6 Oct 2012 23:56:33 +0400
> > Andrew Vagin wrote:
> >
> > > Here is a stack trace of recursion:
> > > free_pid_ns(parent)
> > > put_pid_ns(parent)
> > > kref_put(
On Tue, Oct 09, 2012 at 11:48:21AM -0700, Andrew Morton wrote:
> On Sat, 6 Oct 2012 23:56:33 +0400
> Andrew Vagin wrote:
>
> > Here is a stack trace of recursion:
> > free_pid_ns(parent)
> > put_pid_ns(parent)
> > kref_put(&ns->kref, free_pid_ns);
> > free_pid_ns
> >
> > This patch
On Sat, 6 Oct 2012 23:56:33 +0400
Andrew Vagin wrote:
> Here is a stack trace of recursion:
> free_pid_ns(parent)
> put_pid_ns(parent)
> kref_put(&ns->kref, free_pid_ns);
> free_pid_ns
>
> This patch turns recursion into loops.
>
> pidns can be nested many times, so in case of recu
Here is a stack trace of recursion:
free_pid_ns(parent)
put_pid_ns(parent)
kref_put(&ns->kref, free_pid_ns);
free_pid_ns
This patch turns recursion into loops.
pidns can be nested many times, so in case of recursion
a simple user space program can provoke a kernel panic
due to exceed
On 10/06, Andrew Vagin wrote:
>
> --- a/kernel/pid_namespace.c
> +++ b/kernel/pid_namespace.c
> @@ -138,11 +138,20 @@ void free_pid_ns(struct kref *kref)
>
> ns = container_of(kref, struct pid_namespace, kref);
>
> - parent = ns->parent;
> - destroy_pid_namespace(ns);
> + whil
Here is a stack trace of recursion:
free_pid_ns(parent)
put_pid_ns(parent)
kref_put(&ns->kref, free_pid_ns);
free_pid_ns
This patch turns recursion into loops.
pidns can be nested many times, so in case of recursion
a simple user space program can provoke a kernel panic
due to exceed
On 10/05, Andrew Vagin wrote:
>
> Here is a stack trace of recursion:
> free_pid_ns(parent)
> put_pid_ns(parent)
> kref_put(&ns->kref, free_pid_ns);
> free_pid_ns
>
> This patch turns recursion into loops.
I think the patch is correct, a couple of minor nits.
> +static inline int __kr
On Fri, Oct 05, 2012 at 01:21:02AM +0400, Andrew Vagin wrote:
> Here is a stack trace of recursion:
> free_pid_ns(parent)
> put_pid_ns(parent)
> kref_put(&ns->kref, free_pid_ns);
> free_pid_ns
>
> This patch turns recursion into loops.
>
> pidns can be nested many times, so in case of
Here is a stack trace of recursion:
free_pid_ns(parent)
put_pid_ns(parent)
kref_put(&ns->kref, free_pid_ns);
free_pid_ns
This patch turns recursion into loops.
pidns can be nested many times, so in case of recursion
a simple user space program can provoke a kernel panic
due to exceed
17 matches
Mail list logo