Explorar o código

perf tools: Correct size given to memset

Memset should be given the size of the structure, not the size
of the pointer.

The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@@
type T;
T *x;
expression E;
@@

memset(x, E, sizeof(
+ *
 x))
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
LKML-Reference: <Pine.LNX.4.64.0912092026000.1870@ask.diku.dk>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Julia Lawall %!s(int64=15) %!d(string=hai) anos
pai
achega
5660ce3424
Modificáronse 2 ficheiros con 2 adicións e 2 borrados
  1. 1 1
      tools/perf/util/probe-event.c
  2. 1 1
      tools/perf/util/trace-event-parse.c

+ 1 - 1
tools/perf/util/probe-event.c

@@ -376,7 +376,7 @@ static void clear_probe_point(struct probe_point *pp)
 		free(pp->args);
 		free(pp->args);
 	for (i = 0; i < pp->found; i++)
 	for (i = 0; i < pp->found; i++)
 		free(pp->probes[i]);
 		free(pp->probes[i]);
-	memset(pp, 0, sizeof(pp));
+	memset(pp, 0, sizeof(*pp));
 }
 }
 
 
 /* Show an event */
 /* Show an event */

+ 1 - 1
tools/perf/util/trace-event-parse.c

@@ -1477,7 +1477,7 @@ process_fields(struct event *event, struct print_flag_sym **list, char **tok)
 			goto out_free;
 			goto out_free;
 
 
 		field = malloc_or_die(sizeof(*field));
 		field = malloc_or_die(sizeof(*field));
-		memset(field, 0, sizeof(field));
+		memset(field, 0, sizeof(*field));
 
 
 		value = arg_eval(arg);
 		value = arg_eval(arg);
 		field->value = strdup(value);
 		field->value = strdup(value);