mirror of
git://git.gnupg.org/gnupg.git
synced 2025-02-07 17:33:02 +01:00
agent: Fix get_socket_name.
* agent/gpg-agent.c (get_socket_name): Fix the size of copying. -- Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
parent
1a24c67e20
commit
fb3b3e1e7a
@ -599,19 +599,21 @@ get_socket_name (int fd)
|
|||||||
log_error ("socket name not present for file descriptor %d\n", fd);
|
log_error ("socket name not present for file descriptor %d\n", fd);
|
||||||
else if (len > sizeof(un))
|
else if (len > sizeof(un))
|
||||||
log_error ("socket name for file descriptor %d was truncated "
|
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
|
else
|
||||||
{
|
{
|
||||||
log_debug ("file descriptor %d has path %s (%lu octets)\n", fd,
|
size_t namelen = len - offsetof (struct sockaddr_un, sun_path);
|
||||||
un.sun_path, len - offsetof (struct sockaddr_un, sun_path));
|
|
||||||
name = xtrymalloc (len - offsetof (struct sockaddr_un, sun_path) + 1);
|
log_debug ("file descriptor %d has path %s (%zu octets)\n", fd,
|
||||||
|
un.sun_path, namelen);
|
||||||
|
name = xtrymalloc (namelen + 1);
|
||||||
if (!name)
|
if (!name)
|
||||||
log_error ("failed to allocate memory for name of fd %d: %s\n",
|
log_error ("failed to allocate memory for name of fd %d: %s\n",
|
||||||
fd, gpg_strerror (gpg_error_from_syserror ()));
|
fd, gpg_strerror (gpg_error_from_syserror ()));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
memcpy (name, un.sun_path, len);
|
memcpy (name, un.sun_path, namelen);
|
||||||
name[len] = 0;
|
name[namelen] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user