From e438e2a6a519df68416786f2e7557b189aa6f266 Mon Sep 17 00:00:00 2001 From: Zheng Wu Date: Wed, 27 Jul 2011 11:05:47 +0800 Subject: [PATCH] obexd: Fix crash in irmc.c for vCard 0 If getting the number of vCard is 0 in sync server, obexd will crash. The reason is that null point is used in query_result of irmc.c. --- obexd/plugins/irmc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/obexd/plugins/irmc.c b/obexd/plugins/irmc.c index 0fb92be82..57a66b781 100644 --- a/obexd/plugins/irmc.c +++ b/obexd/plugins/irmc.c @@ -167,6 +167,9 @@ static void query_result(const char *buffer, size_t bufsize, int vcards, else irmc->buffer = g_string_append(irmc->buffer, owner_vcard); + if (buffer == NULL) + goto done; + /* loop around buffer and add X-IRMC-LUID attribs */ s = buffer; while ((t = strstr(s, "UID:")) != NULL) { @@ -190,6 +193,7 @@ static void query_result(const char *buffer, size_t bufsize, int vcards, /* add remaining bit of buffer */ irmc->buffer = g_string_append(irmc->buffer, s); +done: obex_object_set_io_flags(irmc, G_IO_IN, 0); } -- 2.47.3