Hi guys!

I have encountered a crash inside dbus library when sending message to receiver that is absent on the bus. Crash happens because dbus_message_iter_init API is called with NULL for its first argument. The attached patch fixes this crash. Could you please apply it to the main egg repository.

--
Thanks,
Erik
--- dbus.original.scm	2014-01-31 11:39:43.000000000 +0400
+++ dbus.scm	2014-02-06 17:41:52.557720859 +0400
@@ -679,7 +679,7 @@
 				(for-each (lambda (parm)
 					(iter-append-basic iter parm))	params)
 				(free-iter iter)
-				(let* ([reply-msg ((foreign-lambda* message-ptr ((connection-ptr conn) (message-ptr msg))
+				(and-let* ([reply-msg ((foreign-lambda* message-ptr ((connection-ptr conn) (message-ptr msg))
 							;; idealistic code here; todo: error checking
 							;; todo: timeout comes from where?  (make-parameter) maybe
 							"DBusMessage *reply;
@@ -710,7 +710,7 @@
 							(iter-append-basic iter parm))	params)
 						(free-iter iter)
 						;; TODO: pull this out into a helper function
-						(let* ([reply-msg ((foreign-lambda* message-ptr ((connection-ptr conn) (message-ptr msg))
+						(and-let* ([reply-msg ((foreign-lambda* message-ptr ((connection-ptr conn) (message-ptr msg))
 									;; idealistic code here; todo: error checking
 									"DBusPendingCall* pending;
 									dbus_connection_send_with_reply(conn, msg, &pending, -1);
_______________________________________________
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to