emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/dbusbind.c,v


From: Michael Albinus
Subject: [Emacs-diffs] Changes to emacs/src/dbusbind.c,v
Date: Sun, 23 Mar 2008 16:45:39 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Michael Albinus <albinus>       08/03/23 16:45:39

Index: dbusbind.c
===================================================================
RCS file: /sources/emacs/emacs/src/dbusbind.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- dbusbind.c  25 Jan 2008 18:56:46 -0000      1.22
+++ dbusbind.c  23 Mar 2008 16:45:39 -0000      1.23
@@ -1140,10 +1140,7 @@
   DBusMessageIter iter;
   unsigned int dtype;
   int mtype;
-  char uname[DBUS_MAXIMUM_NAME_LENGTH];
-  char path[DBUS_MAXIMUM_MATCH_RULE_LENGTH]; /* Unlimited in D-Bus spec.  */
-  char interface[DBUS_MAXIMUM_NAME_LENGTH];
-  char member[DBUS_MAXIMUM_NAME_LENGTH];
+  const char *uname, *path, *interface, *member;
 
   /* Open a connection to the bus.  */
   connection = xd_initialize (bus);
@@ -1176,10 +1173,14 @@
   /* Read message type, unique name, object path, interface and member
      from the message.  */
   mtype =            dbus_message_get_type (dmessage);
-  strcpy (uname,     dbus_message_get_sender (dmessage));
-  strcpy (path,      dbus_message_get_path (dmessage));
-  strcpy (interface, dbus_message_get_interface (dmessage));
-  strcpy (member,    dbus_message_get_member (dmessage));
+  uname     = dbus_message_get_sender (dmessage);
+  path      = dbus_message_get_path (dmessage);
+  interface = dbus_message_get_interface (dmessage);
+  member    = dbus_message_get_member (dmessage);
+
+  /* dbus-registered-functions-table requires non nil interface and member. */
+  if ((NULL == interface) || (NULL == member))
+    goto cleanup;
 
   XD_DEBUG_MESSAGE ("Event received: %d %s %s %s %s %s",
                    mtype, uname, path, interface, member,
@@ -1210,11 +1211,8 @@
                             args);
 
          /* Add uname, path, interface and member to the event.  */
-         event.arg = Fcons ((member == NULL ? Qnil : build_string (member)),
-                            event.arg);
-         event.arg = Fcons ((interface == NULL
-                             ? Qnil : build_string (interface)),
-                            event.arg);
+         event.arg = Fcons (build_string (member), event.arg);
+         event.arg = Fcons (build_string (interface), event.arg);
          event.arg = Fcons ((path == NULL ? Qnil : build_string (path)),
                             event.arg);
          event.arg = Fcons ((uname == NULL ? Qnil : build_string (uname)),
@@ -1235,7 +1233,7 @@
      value = CDR_SAFE (value);
     }
 
-  /* Cleanup.  */
+ cleanup:
   dbus_message_unref (dmessage);
   RETURN_UNGCPRO (Qnil);
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]