On 17.07.19 г. 15:37 ч., Steven Rostedt wrote:
On Wed, 17 Jul 2019 11:53:05 +0300 "Yordan Karadzhov (VMware)" <y.karadz@xxxxxxxxx> wrote:It is particularly important to initialize to zero the "data_size" field because its value is used when doing operations like scroll or zoom to check if data has been loaded or not. Not having "data_size" set to zero can cause segfault (as reported by Steven). Reported-By: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=204195 Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@xxxxxxxxx> --- kernel-shark/src/libkshark-model.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel-shark/src/libkshark-model.c b/kernel-shark/src/libkshark-model.c index 18f9c69..fd4d876 100644 --- a/kernel-shark/src/libkshark-model.c +++ b/kernel-shark/src/libkshark-model.c @@ -36,6 +36,9 @@ void ksmodel_init(struct kshark_trace_histo *histo) * Initialize an empty histo. The histo will have no bins and will * contain no data. */ + histo->data_size = 0; + histo->data = NULL; + histo->bin_size = 0; histo->min = 0; histo->max = 0;Are we just trying to set all fields of histo to NULL or zero? If so, why not just do: memset(histo, 0, sizeof(*histo)); ? This will make sure ksmodel_init() zeros all of histo when/if we add new fields.
Yes, this will do a better job. Thanks! Yordan
-- Steve
![]() |