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:
Lars-Peter Clausen 2012-07-03 23:58:40 +02:00 committed by Bert Vermeulen
parent c03f045004
commit 25f5d66a77
1 changed files with 2 additions and 1 deletions

View File

@ -946,9 +946,9 @@ static int hw_dev_acquisition_start(int dev_index, void *cb_data)
2 | LIBUSB_ENDPOINT_IN, buf, size,
receive_transfer, ctx, timeout);
if (libusb_submit_transfer(transfer) != 0) {
/* TODO: Free them all. */
libusb_free_transfer(transfer);
g_free(buf);
abort_acquisition(ctx);
return SR_ERR;
}
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,
ctx->cur_samplerate, ctx->sample_wide)) != SR_OK) {
abort_acquisition(ctx);
return ret;
}