2011-11-21 14:44:47

by Bartosz Szatkowski

[permalink] [raw]
Subject: [PATCH obexd] client: Fix app params memory management

---
client/transfer.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/client/transfer.c b/client/transfer.c
index b6994d1..b314926 100644
--- a/client/transfer.c
+++ b/client/transfer.c
@@ -356,6 +356,12 @@ 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 == NULL)
+ transfer->params =
+ g_new0(struct obc_transfer_params, 1);
+ else 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



2011-11-21 18:42:05

by Johan Hedberg

[permalink] [raw]
Subject: Re: [PATCH obexd] client: Fix app params memory management

Hi Bartosz,

On Mon, Nov 21, 2011, Bartosz Szatkowski wrote:
> ---
> client/transfer.c | 6 ++++++
> 1 files changed, 6 insertions(+), 0 deletions(-)

Applied after a minor fix (you don't need to check for NULL before
calling g_free). Thanks.

Johan