diff --git a/debian/changelog b/debian/changelog index b6602c184..f6f85ba56 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,9 @@ linux-tools (4.5-1~exp1) UNRELEASED; urgency=medium * New upstream release + [ Ben Hutchings ] + * linux-perf: Fix use of uninitialized variables + -- Ben Hutchings Sun, 20 Mar 2016 15:31:39 +0000 linux-tools (4.5~rc7-1~exp1) experimental; urgency=medium diff --git a/debian/patches/series b/debian/patches/series index 57f129f18..c78eff88a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -20,3 +20,4 @@ revert-perf-tools-x86-build-perf-on-older-user-space.patch lockdep-add-missing-macros.patch tools-build-remove-bpf-run-time-check-at-build-time.patch power-cpupower-fix-manpages-NAME.patch +tools-lib-traceevent-fix-use-of-uninitialized-variables.patches diff --git a/debian/patches/tools-lib-traceevent-fix-use-of-uninitialized-variables.patches b/debian/patches/tools-lib-traceevent-fix-use-of-uninitialized-variables.patches new file mode 100644 index 000000000..82a841845 --- /dev/null +++ b/debian/patches/tools-lib-traceevent-fix-use-of-uninitialized-variables.patches @@ -0,0 +1,69 @@ +From: Ben Hutchings +Date: Sun, 20 Mar 2016 21:09:02 +0000 +Subject: tools lib traceevent: Fix use of uninitialized variables + +Fix a number of correct warnings from gcc: + +> plugin_function.c:133:6: warning: 'index' may be used uninitialized in this function [-Wmaybe-uninitialized] +> int index; +> ^ + +'index' is initialized only if indentation is wanted. Move the +printing of indentation using 'index' into the same if-statement. + +> kbuffer-parse.c:339:27: warning: 'length' may be used uninitialized in this function [-Wmaybe-uninitialized] +> kbuf->next = kbuf->index + length; +> ^ +> kbuffer-parse.c:297:15: note: 'length' was declared here +> unsigned int length; +> ^ + +'length' is not initialized when handling an OLD_RINGBUF_TYPE_TIME_EXTEND +record. Based on what trace-cmd does, set length = 0 in this case. + +> kbuffer-parse.c: In function 'kbuffer_read_at_offset': +> kbuffer-parse.c:632:9: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] +> return data; +> ^ + +'data' is not initialized if the offset is too small. Initialize it +to NULL so that the behaviour is the same as when the offset is too +large. + +Signed-off-by: Ben Hutchings +--- +--- a/tools/lib/traceevent/kbuffer-parse.c ++++ b/tools/lib/traceevent/kbuffer-parse.c +@@ -314,6 +314,7 @@ static unsigned int old_update_pointers( + extend <<= TS_SHIFT; + extend += delta; + delta = extend; ++ length = 0; + ptr += 4; + break; + +@@ -613,7 +614,7 @@ unsigned long long kbuffer_timestamp(str + void *kbuffer_read_at_offset(struct kbuffer *kbuf, int offset, + unsigned long long *ts) + { +- void *data; ++ void *data = NULL; + + if (offset < kbuf->start) + offset = 0; +--- a/tools/lib/traceevent/plugin_function.c ++++ b/tools/lib/traceevent/plugin_function.c +@@ -142,10 +142,10 @@ static int function_handler(struct trace + + parent = pevent_find_function(pevent, pfunction); + +- if (parent && ftrace_indent->set) ++ if (parent && ftrace_indent->set) { + index = add_and_get_index(parent, func, record->cpu); +- +- trace_seq_printf(s, "%*s", index*3, ""); ++ trace_seq_printf(s, "%*s", index*3, ""); ++ } + + if (func) + trace_seq_printf(s, "%s", func);