LVS
lvs-devel
Google
 
Web LinuxVirtualServer.org

Re[2]: Re[2]: [PATCH] netfilter: ipvs: Verify that IP_VS protocol has

To: "Sasha Levin" <levinsasha928@xxxxxxxxx>
Subject: Re[2]: Re[2]: [PATCH] netfilter: ipvs: Verify that IP_VS protocol has been registered
Cc: "Simon Horman" <horms@xxxxxxxxxxxx>, wensong@xxxxxxxxxxxx, ja@xxxxxx, kaber@xxxxxxxxx, davem@xxxxxxxxxxxxx, davej@xxxxxxxxxx, netdev@xxxxxxxxxxxxxxx, lvs-devel@xxxxxxxxxxxxxxx, netfilter-devel@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx
From: "Hans Schillstrom" <hans@xxxxxxxxxxxxxxx>
Date: Fri, 6 Apr 2012 11:39:50 +0200 (CEST)
Hello Sasha

>---- Original Message ----
>From: Sasha Levin <levinsasha928@xxxxxxxxx>
>To: "Hans Schillstrom" <hans@xxxxxxxxxxxxxxx>
>Cc: "Simon Horman" <horms@xxxxxxxxxxxx>, wensong@xxxxxxxxxxxx, ja@xxxxxx, 
>kaber@xxxxxxxxx, davem@xxxxxxxxxxxxx, davej@xxxxxxxxxx, 
>netdev@xxxxxxxxxxxxxxx, lvs-devel@xxxxxxxxxxxxxxx, 
>netfilter-devel@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx
>Sent: Fri, Apr 6, 2012, 11:22 AM
>Subject: Re: Re[2]: [PATCH] netfilter: ipvs: Verify that IP_VS protocol has 
>been registered
>
>On Fri, Apr 6, 2012 at 10:59 AM, Hans Schillstrom <hans@xxxxxxxxxxxxxxx> wrote:
>> Hello Simon
>>
>>>---- Original Message ----
>>>From: Simon Horman <horms@xxxxxxxxxxxx>
>>>To: "Sasha Levin" <levinsasha928@xxxxxxxxx>
>>>Cc: wensong@xxxxxxxxxxxx, ja@xxxxxx, kaber@xxxxxxxxx, davem@xxxxxxxxxxxxx, 
>>>davej@xxxxxxxxxx, netdev@xxxxxxxxxxxxxxx, lvs-devel@xxxxxxxxxxxxxxx, 
>>>netfilter-devel@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx
>>>Sent: Fri, Apr 6, 2012, 1:19 AM
>>>Subject: Re: [PATCH] netfilter: ipvs: Verify that IP_VS protocol has been 
>>>registered
>>>
>>>On Thu, Apr 05, 2012 at 07:24:33PM -0400, Sasha Levin wrote:
>>>> The registration of a protocol might fail, there were no checks
>>>> and all registrations were assumed to be correct. This lead to
>>>> NULL ptr dereferences when apps tried registering.
>>>
>>>Thanks, I will queue up this fix.
>>>
>>>Do you have a real-world example of this failing, if so it
>>>might be worth pushing your change into stable.
>>
>> I don't think this is a big thing, the only thing that can cause it is out 
>> of memory,
>> and that will cause a "kernel death" anyway :-(
>>
>> here is the code :
>>
>> register_ip_vs_proto_netns(struct net *net, struct ip_vs_protocol *pp)
>> {
>> ...
>>        struct ip_vs_proto_data *pd =
>>                        kzalloc(sizeof(struct ip_vs_proto_data), GFP_ATOMIC);
>>
>>        if (!pd)
>>                return -ENOMEM;
>>
>>
>
>Considering that the allocation gfp flag here is GFP_ATOMIC (why is it
>GFP_ATOMIC btw?), it might fail for a variety of reasons which may
>occur when the system is "healthy", for example - if it needs disk I/O
>to allocate.

Hmm, I think it should be GFP_KERNEL
I will have a look at this, and make it consistent with the rest of the netns 
allocations,

>
>Either way, you shouldn't be dereferencing NULL ptrs even when the
>system is really low on memory.

Of course not, it's a bug  

Simon:
I think you should push this one into stable 


Thanks Sasha


Regards
Hans 


--
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

<Prev in Thread] Current Thread [Next in Thread>
  • Re[2]: Re[2]: [PATCH] netfilter: ipvs: Verify that IP_VS protocol has been registered, Hans Schillstrom <=