From eaab00b97db86a89fd77aadc69928fefa0288b28 Mon Sep 17 00:00:00 2001 From: Manuel Pitz Date: Wed, 23 Jun 2021 20:08:10 +0200 Subject: [PATCH] path: increase pool size and fix nullptr dereference --- lib/path_source.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/path_source.cpp b/lib/path_source.cpp index 58d20f59c..69289d249 100644 --- a/lib/path_source.cpp +++ b/lib/path_source.cpp @@ -52,7 +52,7 @@ int path_source_init_master(struct vpath_source *ps, struct vnode *n) if (ret) return ret; - int pool_size = MAX(DEFAULT_QUEUE_LENGTH, ps->node->in.vectorize); + int pool_size = MAX(DEFAULT_QUEUE_LENGTH, 40 * ps->node->in.vectorize); if (ps->node->_vt->pool_size) pool_size = ps->node->_vt->pool_size; @@ -179,6 +179,10 @@ int path_source_read(struct vpath_source *ps, struct vpath *p, int i) muxed_smps[i] = i == 0 ? sample_clone(p->last_sample) : sample_clone(muxed_smps[i-1]); + if (!muxed_smps[i]) { + p->logger->error("Pool underrun in path {}", path_name(p)); + return -1; + } if (p->original_sequence_no) { muxed_smps[i]->sequence = tomux_smps[i]->sequence;