From c99e67cc7a52cc8fcca584ce08ad06918e68b649 Mon Sep 17 00:00:00 2001 From: rivo Date: Mon, 1 Dec 2014 18:58:22 +0300 Subject: [PATCH] fixed reposne message memory leak --- dbus/dbus.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dbus/dbus.scm b/dbus/dbus.scm index fbee4e2..c83db8d 100644 --- a/dbus/dbus.scm +++ b/dbus/dbus.scm @@ -583,8 +583,10 @@ (define (make-iter msg) (let* ([iter ((foreign-lambda* message-iter-ptr ((message-ptr msg)) "DBusMessageIter* i = malloc(sizeof(DBusMessageIter)); - if (!dbus_message_iter_init (msg, i)) + if (!dbus_message_iter_init (msg, i)) { + free(i); i = (DBusMessageIter*)0; // Message has no parameters + } C_return (i);") msg) ] [has-next iter] ) @@ -829,6 +831,7 @@ ;; send response (send-impl conn response #f) (free-iter iter) + ((foreign-lambda void "dbus_message_unref" message-iter-ptr) response) )))) (define (handler-wrapper conn msg-cb) -- 1.9.1