Em Mon, Jan 21, 2013 at 01:53:21PM +0900, Namhyung Kim escreveu:Apologies for the noise.On Sat, 19 Jan 2013 16:36:54 +0000, Colin King wrote:From: Colin Ian King <colin.king@xxxxxxxxxxxxx>
__perf_evsel__read_on_cpu() only bails out with -ENOMEM if
evsel->counts is NULL and perf_evsel__alloc_counts() has returned
an error. If perf_evsel__alloc_counts() does not return an error
we get an NULL pointer deference on evsel->counts->cpu[cpu]
if evsel->counts is NULL.
perf_evsel__alloc_counts() should allocate evsel->counts when it sees
evsel->counts is NULL and return negative error code if the allocation
fails.
So I don't see any problem in current code. With your code, it won't
try to allocate if ->counts is NULL but overwrite existing ->counts?
Right, the patch introduces a problem in code that works perfectly :-)
- Arnaldo