Add some sanity checks

If first sample is not a DC_SAMPLE_TIME, we would have bin dereferencing
a null pointer.
This might actually never happen, unless we talk to a really weird dc,
but this makes the static analyzer happier.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Anton Lundin 2013-12-11 00:53:36 +01:00 committed by Dirk Hohndel
parent 5b61409358
commit 0812d2def2

View file

@ -181,6 +181,13 @@ sample_cb(dc_sample_type_t type, dc_sample_value_t value, void *userdata)
*/
sample = dc->samples ? dc->sample+dc->samples-1 : NULL;
/*
* Ok, sanity check.
* If first sample is not a DC_SAMPLE_TIME, Allocate a sample for us
*/
if (sample == NULL && type != DC_SAMPLE_TIME)
sample = prepare_sample(dc);
switch (type) {
case DC_SAMPLE_TIME:
if (sample) {