obc_transfer_params (created in obc_session_get) are reused to store params received in the response. But actual parameter data were not freed before g_memdup in get_buf_xfer_progress. --- client/transfer.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/client/transfer.c b/client/transfer.c index b6994d1..e072a42 100644 --- a/client/transfer.c +++ b/client/transfer.c @@ -356,6 +356,9 @@ static void get_buf_xfer_progress(GObex *obex, GError *err, GObexPacket *rsp, if (hdr) { g_obex_header_get_bytes(hdr, &buf, &len); if (len != 0) { + if (transfer->params->data != NULL) + g_free(transfer->params->data); + transfer->params->data = g_memdup(buf, len); transfer->params->size = len; } -- 1.7.4.1 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html