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  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4E2FDAA0.5020702@redhat.com>
Date:	Wed, 27 Jul 2011 11:30:08 +0200
From:	Igor Mammedov <imammedo@...hat.com>
To:	Michal Hocko <mhocko@...e.cz>
CC:	Andrew Morton <akpm@...ux-foundation.org>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>,
	Hiroyuki Kamezawa <kamezawa.hiroyuki@...il.com>,
	linux-kernel@...r.kernel.org, balbir@...ux.vnet.ibm.com,
	linux-mm@...ck.org, Paul Menage <menage@...gle.com>,
	Li Zefan <lizf@...fujitsu.com>,
	containers@...ts.linux-foundation.org,
	Tim Deegan <Tim.Deegan@...rix.com>
Subject: Re: [PATCH] memcg: do not expose uninitialized mem_cgroup_per_node
 to world

On 07/27/2011 09:58 AM, Michal Hocko wrote:
> On Tue 26-07-11 14:17:54, Andrew Morton wrote:
>> On Fri, 10 Jun 2011 18:57:40 +0200
>> Igor Mammedov<imammedo@...hat.com>  wrote:
>>
>>> On 06/08/2011 11:09 PM, Andrew Morton wrote:
>>>> The original patch:
>>>>
>>>> --- a/mm/memcontrol.c
>>>> +++ b/mm/memcontrol.c
>>>> @@ -4707,7 +4707,6 @@ static int alloc_mem_cgroup_per_zone_info(struct mem_cgroup *mem, int node)
>>>>    	if (!pn)
>>>>    		return 1;
>>>>
>>>> -	mem->info.nodeinfo[node] = pn;
>>>>    	for (zone = 0; zone<   MAX_NR_ZONES; zone++) {
>>>>    		mz =&pn->zoneinfo[zone];
>>>>    		for_each_lru(l)
>>>> @@ -4716,6 +4715,7 @@ static int alloc_mem_cgroup_per_zone_info(struct mem_cgroup *mem, int node)
>>>>    		mz->on_tree = false;
>>>>    		mz->mem = mem;
>>>>    	}
>>>> +	mem->info.nodeinfo[node] = pn;
>>>>    	return 0;
>>>>    }
>>>>
>>>> looks like a really good idea.  But it needs a new changelog and I'd be
>>>> a bit reluctant to merge it as it appears that the aptch removes our
>>>> only known way of reproducing a bug.
>>>>
>>>> So for now I think I'll queue the patch up unchangelogged so the issue
>>>> doesn't get forgotten about.
>>>>
>>> Problem was in rhel's xen hv.
>>> It was missing fix for imul emulation.
>>> Details here
>>> http://lists.xensource.com/archives/html/xen-devel/2011-06/msg00801.html
>>> Thanks to Tim Deegan and everyone who was involved in the discussion.
>>
>> I really don't want to trawl through a lengthy xen bug report
>
> The bug turned out to be Xen specific and this patch just hidden the bug
> in Xen.

The problem was in incorrect imul instruction emulation in xen and as
consequence incorrect attempt to initialize list at invalid memory location.

>
>> and write your changelog for you.
>>
>> We still have no changelog for this patch.  Please send one.
>
> Appart from a better programming style is there any other reason for
> taking it?  If applied it might hide potential bugs when somebody is
> touching data too early.
>

If it ever happens and somebody is touching data too early, it would be
a bit easier to diagnose a problem when dereferencing NULL at
mem->info.nodeinfo[node] than wondering at partly initialized
mem_cgroup_per_zone. Aside from that it is purely cosmetic change.

Here is proposed change log:

Subject: Cleanup: memcg: Expose only initialized mem_cgroup_per_node to world

If somebody is touching data too early, it might be easier to diagnose
a problem when dereferencing NULL at mem->info.nodeinfo[node] than
trying to understand why mem_cgroup_per_zone is [un|partly]initialized.


Michal will you agree with such commit message?

-- 
Thanks,
  Igor
--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ