diff options
author | NIIBE Yutaka <[email protected]> | 2016-10-07 10:00:10 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2016-10-07 10:00:10 +0000 |
commit | fb3b3e1e7a4219f61a834fd07809898918611c2f (patch) | |
tree | d07f7bc41776262ebbd1e6802358302a3359e496 | |
parent | Revert "g10: Fix singular term." (diff) | |
download | gnupg-fb3b3e1e7a4219f61a834fd07809898918611c2f.tar.gz gnupg-fb3b3e1e7a4219f61a834fd07809898918611c2f.zip |
agent: Fix get_socket_name.
* agent/gpg-agent.c (get_socket_name): Fix the size of copying.
--
Signed-off-by: NIIBE Yutaka <[email protected]>
-rw-r--r-- | agent/gpg-agent.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c index 70d977539..32e072b1e 100644 --- a/agent/gpg-agent.c +++ b/agent/gpg-agent.c @@ -599,19 +599,21 @@ get_socket_name (int fd) log_error ("socket name not present for file descriptor %d\n", fd); else if (len > sizeof(un)) log_error ("socket name for file descriptor %d was truncated " - "(passed %lu bytes, wanted %u)\n", fd, sizeof(un), len); + "(passed %zu bytes, wanted %u)\n", fd, sizeof(un), len); else { - log_debug ("file descriptor %d has path %s (%lu octets)\n", fd, - un.sun_path, len - offsetof (struct sockaddr_un, sun_path)); - name = xtrymalloc (len - offsetof (struct sockaddr_un, sun_path) + 1); + size_t namelen = len - offsetof (struct sockaddr_un, sun_path); + + log_debug ("file descriptor %d has path %s (%zu octets)\n", fd, + un.sun_path, namelen); + name = xtrymalloc (namelen + 1); if (!name) log_error ("failed to allocate memory for name of fd %d: %s\n", fd, gpg_strerror (gpg_error_from_syserror ())); else { - memcpy (name, un.sun_path, len); - name[len] = 0; + memcpy (name, un.sun_path, namelen); + name[namelen] = 0; } } |