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.
This commit is contained in:
Igor Zhbanov 2013-10-15 14:35:13 +04:00 committed by Zbigniew Jędrzejewski-Szmek
parent 72f4d9669c
commit 306e665022

View file

@ -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);