aboutsummaryrefslogtreecommitdiffstats
path: root/src/dbusbind.c
diff options
context:
space:
mode:
authorPaul Eggert <[email protected]>2011-06-19 11:32:55 -0700
committerPaul Eggert <[email protected]>2011-06-19 11:32:55 -0700
commit573f4b54074f81bff59d5da768da2d044d358fe1 (patch)
tree9c3ccf9e567b45ca7337c2421dc9ccf708e9369d /src/dbusbind.c
parent989f33ba6bda51e06241f2e5a7b07f9feb435057 (diff)
* dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
(XD_DEBUG_MESSAGE): Don't waste a byte.
Diffstat (limited to 'src/dbusbind.c')
-rw-r--r--src/dbusbind.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/dbusbind.c b/src/dbusbind.c
index f662d5b38a..302b93146f 100644
--- a/src/dbusbind.c
+++ b/src/dbusbind.c
@@ -111,13 +111,12 @@ static int xd_in_read_queued_messages = 0;
/* Raise a Lisp error from a D-Bus ERROR. */
#define XD_ERROR(error) \
do { \
- char s[1024]; \
- strncpy (s, error.message, 1023); \
- dbus_error_free (&error); \
/* Remove the trailing newline. */ \
- if (strchr (s, '\n') != NULL) \
- s[strlen (s) - 1] = '\0'; \
- XD_SIGNAL1 (build_string (s)); \
+ char const *mess = error.message; \
+ char const *nl = strchr (mess, '\n'); \
+ Lisp_Object err = make_string (mess, nl ? nl - mess : strlen (mess)); \
+ dbus_error_free (&error); \
+ XD_SIGNAL1 (err); \
} while (0)
/* Macros for debugging. In order to enable them, build with
@@ -126,7 +125,7 @@ static int xd_in_read_queued_messages = 0;
#define XD_DEBUG_MESSAGE(...) \
do { \
char s[1024]; \
- snprintf (s, 1023, __VA_ARGS__); \
+ snprintf (s, sizeof s, __VA_ARGS__); \
printf ("%s: %s\n", __func__, s); \
message ("%s: %s", __func__, s); \
} while (0)