fix memleak in Soapy driver when no device was found

master
Andre Puschmann 6 years ago
parent abdb880b3b
commit aff26abc89

@ -289,10 +289,11 @@ float rf_soapy_get_rssi(void *h)
int rf_soapy_open_multi(char* args, void** h, uint32_t num_requested_channels) int rf_soapy_open_multi(char* args, void** h, uint32_t num_requested_channels)
{ {
size_t length; size_t length;
const SoapySDRKwargs *soapy_args = SoapySDRDevice_enumerate(NULL, &length); SoapySDRKwargs* soapy_args = SoapySDRDevice_enumerate(NULL, &length);
if (length == 0) { if (length == 0) {
printf("No Soapy devices found.\n"); printf("No Soapy devices found.\n");
SoapySDRKwargsList_clear(soapy_args, length);
return SRSLTE_ERROR; return SRSLTE_ERROR;
} }
char* devname = DEVNAME_NONE; char* devname = DEVNAME_NONE;
@ -314,6 +315,7 @@ int rf_soapy_open_multi(char* args, void** h, uint32_t num_requested_channels)
printf("Failed to create Soapy object\n"); printf("Failed to create Soapy object\n");
return SRSLTE_ERROR; return SRSLTE_ERROR;
} }
SoapySDRKwargsList_clear(soapy_args, length);
// create handler // create handler
rf_soapy_handler_t *handler = (rf_soapy_handler_t*) malloc(sizeof(rf_soapy_handler_t)); rf_soapy_handler_t *handler = (rf_soapy_handler_t*) malloc(sizeof(rf_soapy_handler_t));

Loading…
Cancel
Save