From af614a93e148b64eacd83fb5443293db8f22b099 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zsolt=20Ga=C3=A1l?= Date: Tue, 16 Jun 2026 00:40:39 +0200 Subject: [PATCH] examples: Fix cleanup waterfall memory leak in rx_samples_c --- host/examples/rx_samples_c.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/host/examples/rx_samples_c.c b/host/examples/rx_samples_c.c index eeb6eb880d..7de3fc25e8 100644 --- a/host/examples/rx_samples_c.c +++ b/host/examples/rx_samples_c.c @@ -172,11 +172,11 @@ int main(int argc, char* argv[]) // Set up streamer stream_args.channel_list = &channel; EXECUTE_OR_GOTO( - free_rx_streamer, uhd_usrp_get_rx_stream(usrp, &stream_args, rx_streamer)) + free_rx_metadata, uhd_usrp_get_rx_stream(usrp, &stream_args, rx_streamer)) // Set up buffer EXECUTE_OR_GOTO( - free_rx_streamer, uhd_rx_streamer_max_num_samps(rx_streamer, &samps_per_buff)) + free_rx_metadata, uhd_rx_streamer_max_num_samps(rx_streamer, &samps_per_buff)) fprintf(stderr, "Buffer size in samples: %zu\n", samps_per_buff); buff = malloc(samps_per_buff * 2 * sizeof(float)); buffs_ptr = (void**)&buff; @@ -235,6 +235,12 @@ int main(int argc, char* argv[]) } buff = NULL; buffs_ptr = NULL; + +free_rx_metadata: + if (verbose) { + fprintf(stderr, "Cleaning up RX metadata.\n"); + } + uhd_rx_metadata_free(&md); free_rx_streamer: if (verbose) { @@ -242,12 +248,6 @@ int main(int argc, char* argv[]) } uhd_rx_streamer_free(&rx_streamer); -free_rx_metadata: - if (verbose) { - fprintf(stderr, "Cleaning up RX metadata.\n"); - } - uhd_rx_metadata_free(&md); - free_usrp: if (verbose) { fprintf(stderr, "Cleaning up USRP.\n");