From effca8315072232a566059f7ab6d1e04129e8b6a Mon Sep 17 00:00:00 2001 From: Mictronics Date: Wed, 22 Feb 2017 15:38:35 +0100 Subject: [PATCH 1/2] Fixed bug that sets auto-gain to manual mode. --- sdr_rtlsdr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdr_rtlsdr.c b/sdr_rtlsdr.c index 4c3ae02..b818815 100644 --- a/sdr_rtlsdr.c +++ b/sdr_rtlsdr.c @@ -198,7 +198,7 @@ bool rtlsdrOpen(void) { // Set gain, frequency, sample rate, and reset the device if (Modes.gain == MODES_AUTO_GAIN) { fprintf(stderr, "rtlsdr: enabling tuner AGC\n"); - rtlsdr_set_tuner_gain_mode(RTLSDR.dev, 1); + rtlsdr_set_tuner_gain_mode(RTLSDR.dev, 0); } else { int *gains; int numgains; From 630136a1ebc67b12e7677c1abaae9d21ae0425bf Mon Sep 17 00:00:00 2001 From: Mictronics Date: Wed, 22 Feb 2017 15:39:09 +0100 Subject: [PATCH 2/2] Fixed use after free bug. --- sdr_rtlsdr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdr_rtlsdr.c b/sdr_rtlsdr.c index b818815..8b906c5 100644 --- a/sdr_rtlsdr.c +++ b/sdr_rtlsdr.c @@ -223,10 +223,10 @@ bool rtlsdrOpen(void) { if (closest == -1 || abs(gains[i] - target) < abs(gains[closest] - target)) closest = i; } - + + rtlsdr_set_tuner_gain(RTLSDR.dev, gains[closest]); free(gains); - rtlsdr_set_tuner_gain(RTLSDR.dev, gains[closest]); fprintf(stderr, "rtlsdr: tuner gain set to %.1f dB\n", rtlsdr_get_tuner_gain(RTLSDR.dev)/10.0); }