Skip to content

Commit

Permalink
perf tools: Move dereference after NULL test
Browse files Browse the repository at this point in the history
In each case, if the NULL test on thread is needed, then the
dereference should be after the NULL test.

A simplified version of the semantic match that detects this
problem is as follows (http://coccinelle.lip6.fr/):

// <smpl>
@match exists@
expression x, E;
identifier fld;
@@

* x->fld
  ... when != \(x = E\|&x\)
* x == NULL
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
LKML-Reference: <Pine.LNX.4.64.0910170842500.9213@ask.diku.dk>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Julia Lawall authored and Ingo Molnar committed Oct 17, 2009
1 parent 434a83c commit f39cdf2
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 8 deletions.
4 changes: 2 additions & 2 deletions tools/perf/builtin-annotate.c
Original file line number Diff line number Diff line change
Expand Up @@ -104,14 +104,14 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head)
event->ip.pid,
(void *)(long)ip);

dump_printf(" ... thread: %s:%d\n", thread->comm, thread->pid);

if (thread == NULL) {
fprintf(stderr, "problem processing %d event, skipping it.\n",
event->header.type);
return -1;
}

dump_printf(" ... thread: %s:%d\n", thread->comm, thread->pid);

if (event->header.misc & PERF_RECORD_MISC_KERNEL) {
level = 'k';
sym = kernel_maps__find_symbol(ip, &map);
Expand Down
4 changes: 2 additions & 2 deletions tools/perf/builtin-report.c
Original file line number Diff line number Diff line change
Expand Up @@ -629,14 +629,14 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head)
}
}

dump_printf(" ... thread: %s:%d\n", thread->comm, thread->pid);

if (thread == NULL) {
eprintf("problem processing %d event, skipping it.\n",
event->header.type);
return -1;
}

dump_printf(" ... thread: %s:%d\n", thread->comm, thread->pid);

if (comm_list && !strlist__has_entry(comm_list, thread->comm))
return 0;

Expand Down
4 changes: 2 additions & 2 deletions tools/perf/builtin-sched.c
Original file line number Diff line number Diff line change
Expand Up @@ -1667,14 +1667,14 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head)
(void *)(long)ip,
(long long)period);

dump_printf(" ... thread: %s:%d\n", thread->comm, thread->pid);

if (thread == NULL) {
eprintf("problem processing %d event, skipping it.\n",
event->header.type);
return -1;
}

dump_printf(" ... thread: %s:%d\n", thread->comm, thread->pid);

if (profile_cpu != -1 && profile_cpu != (int) cpu)
return 0;

Expand Down
4 changes: 2 additions & 2 deletions tools/perf/builtin-trace.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,14 +80,14 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head)
(void *)(long)ip,
(long long)period);

dump_printf(" ... thread: %s:%d\n", thread->comm, thread->pid);

if (thread == NULL) {
eprintf("problem processing %d event, skipping it.\n",
event->header.type);
return -1;
}

dump_printf(" ... thread: %s:%d\n", thread->comm, thread->pid);

if (sample_type & PERF_SAMPLE_RAW) {
struct {
u32 size;
Expand Down

0 comments on commit f39cdf2

Please sign in to comment.