sr: fx2lafw: Fix potential leaks in acquisition_start error paths
Call abort_acquisition if starting sampling fails in acquisition_start, this will ensure that all already allocated resources are being freed again. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
This commit is contained in:
parent
c03f045004
commit
25f5d66a77
|
@ -946,9 +946,9 @@ static int hw_dev_acquisition_start(int dev_index, void *cb_data)
|
||||||
2 | LIBUSB_ENDPOINT_IN, buf, size,
|
2 | LIBUSB_ENDPOINT_IN, buf, size,
|
||||||
receive_transfer, ctx, timeout);
|
receive_transfer, ctx, timeout);
|
||||||
if (libusb_submit_transfer(transfer) != 0) {
|
if (libusb_submit_transfer(transfer) != 0) {
|
||||||
/* TODO: Free them all. */
|
|
||||||
libusb_free_transfer(transfer);
|
libusb_free_transfer(transfer);
|
||||||
g_free(buf);
|
g_free(buf);
|
||||||
|
abort_acquisition(ctx);
|
||||||
return SR_ERR;
|
return SR_ERR;
|
||||||
}
|
}
|
||||||
ctx->transfers[i] = transfer;
|
ctx->transfers[i] = transfer;
|
||||||
|
@ -976,6 +976,7 @@ static int hw_dev_acquisition_start(int dev_index, void *cb_data)
|
||||||
|
|
||||||
if ((ret = command_start_acquisition (ctx->usb->devhdl,
|
if ((ret = command_start_acquisition (ctx->usb->devhdl,
|
||||||
ctx->cur_samplerate, ctx->sample_wide)) != SR_OK) {
|
ctx->cur_samplerate, ctx->sample_wide)) != SR_OK) {
|
||||||
|
abort_acquisition(ctx);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue