summaryrefslogtreecommitdiffstats
path: root/libdaemon/server/daemon-server.c
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2012-06-21 21:19:28 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2012-06-22 13:23:03 +0200
commit6f3cd63551db013e3cf5dfcebc41115322d5cfe9 (patch)
tree0dc6d844cc137cb3e665f79ac78ead4db12bd697 /libdaemon/server/daemon-server.c
parentda42ee3a1f0280742e87a96f5d0694fb869a23e0 (diff)
downloadlvm2-6f3cd63551db013e3cf5dfcebc41115322d5cfe9.tar.gz
lvm2-6f3cd63551db013e3cf5dfcebc41115322d5cfe9.tar.xz
lvm2-6f3cd63551db013e3cf5dfcebc41115322d5cfe9.zip
cleanup: replace memset with struct initilization
Simplifies the code, properly detects too long socket paths, drops unused parameter.
Diffstat (limited to 'libdaemon/server/daemon-server.c')
-rw-r--r--libdaemon/server/daemon-server.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/libdaemon/server/daemon-server.c b/libdaemon/server/daemon-server.c
index 568ef361..65b28e46 100644
--- a/libdaemon/server/daemon-server.c
+++ b/libdaemon/server/daemon-server.c
@@ -129,7 +129,7 @@ union sockaddr_union {
static int _handle_preloaded_socket(int fd, const char *path)
{
struct stat st_fd;
- union sockaddr_union sockaddr;
+ union sockaddr_union sockaddr = { .sa.sa_family = 0 };
int type = 0;
socklen_t len = sizeof(type);
size_t path_len = strlen(path);
@@ -144,7 +144,6 @@ static int _handle_preloaded_socket(int fd, const char *path)
len != sizeof(type) || type != SOCK_STREAM)
return 0;
- memset(&sockaddr, 0, sizeof(sockaddr));
len = sizeof(sockaddr);
if (getsockname(fd, &sockaddr.sa, &len) < 0 ||
len < sizeof(sa_family_t) ||
@@ -204,7 +203,7 @@ out:
static int _open_socket(daemon_state s)
{
int fd = -1;
- struct sockaddr_un sockaddr;
+ struct sockaddr_un sockaddr = { .sun_family = AF_UNIX };
mode_t old_mask;
(void) dm_prepare_selinux_context(s.socket_path, S_IFSOCK);
@@ -223,12 +222,10 @@ static int _open_socket(daemon_state s)
fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) | O_NONBLOCK);
fprintf(stderr, "[D] creating %s\n", s.socket_path);
- memset(&sockaddr, 0, sizeof(sockaddr));
if (!dm_strncpy(sockaddr.sun_path, s.socket_path, sizeof(sockaddr.sun_path))) {
fprintf(stderr, "%s: daemon socket path too long.\n", s.socket_path);
goto error;
}
- sockaddr.sun_family = AF_UNIX;
if (bind(fd, (struct sockaddr *) &sockaddr, sizeof(sockaddr))) {
perror("can't bind local socket.");