diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2011-06-19 11:32:55 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2011-06-19 11:32:55 -0700 |
commit | 573f4b54074f81bff59d5da768da2d044d358fe1 (patch) | |
tree | 9c3ccf9e567b45ca7337c2421dc9ccf708e9369d /src/dbusbind.c | |
parent | 989f33ba6bda51e06241f2e5a7b07f9feb435057 (diff) | |
download | emacs-573f4b54074f81bff59d5da768da2d044d358fe1.tar.gz |
* 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.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/dbusbind.c b/src/dbusbind.c index f662d5b38a2..302b93146fd 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) |