[systemd-commits] src/bootchart
Zbigniew JÄdrzejewski-Szmek
zbyszek at kemper.freedesktop.org
Tue Oct 15 06:44:59 PDT 2013
src/bootchart/store.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit 306e6650221d88b29831bcdcef94447afb65df5c
Author: Igor Zhbanov <i.zhbanov at samsung.com>
Date: Tue Oct 15 14:35:13 2013 +0400
Fix for SIGSEGV in systemd-bootchart on short-living processes
The function svg_ps_bars() dereferencess NULL pointer in the line
endtime = ps->last->sampledata->sampletime;
because of partially initialized ps_struct (ps->last == NULL).
If some process terminates between scaning /proc directory in the log_sample()
function and reading additional information from /proc/PID/... files,
the files couldn't be read, the loop will be continued and partially
initialized structure returned.
diff --git a/src/bootchart/store.c b/src/bootchart/store.c
index f8c97c2..7f86cfe 100644
--- a/src/bootchart/store.c
+++ b/src/bootchart/store.c
@@ -275,7 +275,7 @@ schedstat_next:
pscount++;
/* mark our first sample */
- ps->first = ps->sample;
+ ps->first = ps->last = ps->sample;
ps->sample->runtime = atoll(rt);
ps->sample->waittime = atoll(wt);
More information about the systemd-commits
mailing list