mirror of
https://gitlab.freedesktop.org/libfprint/libfprint.git
synced 2026-06-10 18:24:19 +00:00
egis_etu905: Do not leak the transfer buffer
The buffer is now owned by the data, so we should not steal it when passing it around or we'll leak.
This commit is contained in:
@@ -207,7 +207,8 @@ egis_etu905_cmd_receive_cb (FpiUsbTransfer *transfer,
|
||||
fpi_ssm_mark_failed (transfer->ssm, error);
|
||||
return;
|
||||
}
|
||||
if (data == NULL || transfer->actual_length < egis_etu905_read_prefix_len)
|
||||
|
||||
if (transfer->actual_length < egis_etu905_read_prefix_len)
|
||||
{
|
||||
fpi_ssm_mark_failed (transfer->ssm,
|
||||
fpi_device_error_new (FP_DEVICE_ERROR_GENERAL));
|
||||
@@ -216,6 +217,7 @@ egis_etu905_cmd_receive_cb (FpiUsbTransfer *transfer,
|
||||
|
||||
/* Store the response data and let the cmd_ssm_done callback invoke
|
||||
* the actual callback with the stored data */
|
||||
g_assert (data != NULL);
|
||||
data->buffer_in = g_steal_pointer (&transfer->buffer);
|
||||
data->length_in = transfer->actual_length;
|
||||
|
||||
@@ -282,7 +284,7 @@ egis_etu905_cmd_ssm_done (FpiSsm *ssm,
|
||||
if (data && data->callback)
|
||||
{
|
||||
data->callback (device,
|
||||
g_steal_pointer (&data->buffer_in),
|
||||
data->buffer_in,
|
||||
data->length_in,
|
||||
g_steal_pointer (&local_error));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user