From 637caf5f7d7e9ec67b72f00891c89cf88381d2aa Mon Sep 17 00:00:00 2001
From: Chad Hanna <chad.hanna@ligo.org>
Date: Tue, 28 May 2019 12:38:27 -0400
Subject: [PATCH] gstlal_itacac.c: fix bug where you try to flush more samples
 than we have from an adapter in a corner case

---
 gstlal-inspiral/gst/lal/gstlal_itacac.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gstlal-inspiral/gst/lal/gstlal_itacac.c b/gstlal-inspiral/gst/lal/gstlal_itacac.c
index dc924fa0c8..0d8c90b1ed 100644
--- a/gstlal-inspiral/gst/lal/gstlal_itacac.c
+++ b/gstlal-inspiral/gst/lal/gstlal_itacac.c
@@ -1656,7 +1656,7 @@ static GstFlowReturn aggregate(GstAggregator *aggregator, gboolean timeout)
 			guint num_samples_behind = (guint) ((itacac->next_output_timestamp - itacacpad->initial_timestamp) / (1000000000 / itacacpad->rate));
 			//fprintf(stderr, "itacac->next_output_timestamp = %lu, itacacpad->initial_timestamp = %lu, %u num_samples_behind, gapsamps = %u, available_samps = %u, %s\n", (guint64) itacac->next_output_timestamp, (guint64) itacacpad->initial_timestamp, num_samples_behind, gst_audioadapter_head_gap_length(itacacpad->adapter), gst_audioadapter_available_samples(itacacpad->adapter), itacacpad->instrument);
 			if(num_samples_behind > itacacpad->maxdata->pad) {
-				gst_audioadapter_flush_samples(itacacpad->adapter, num_samples_behind - itacacpad->maxdata->pad);
+				gst_audioadapter_flush_samples(itacacpad->adapter, MIN(num_samples_behind - itacacpad->maxdata->pad, gst_audioadapter_available_samples(itacacpad->adapter)));
 			} else if(num_samples_behind < itacacpad->maxdata->pad)
 				itacacpad->adjust_window = num_samples_behind;
 
-- 
GitLab