summaryrefslogtreecommitdiffstats
path: root/daemons
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 /daemons
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 'daemons')
-rw-r--r--daemons/clvmd/clvmd-openais.c3
-rw-r--r--daemons/clvmd/clvmd-singlenode.c14
-rw-r--r--daemons/clvmd/clvmd.c25
-rw-r--r--daemons/clvmd/refresh_clvmd.c12
-rw-r--r--daemons/cmirrord/cluster.c3
-rw-r--r--daemons/cmirrord/functions.c8
-rw-r--r--daemons/dmeventd/dmeventd.c12
7 files changed, 36 insertions, 41 deletions
diff --git a/daemons/clvmd/clvmd-openais.c b/daemons/clvmd/clvmd-openais.c
index 5f237e9b..9ce73d6a 100644
--- a/daemons/clvmd/clvmd-openais.c
+++ b/daemons/clvmd/clvmd-openais.c
@@ -197,14 +197,13 @@ static int add_internal_client(int fd, fd_callback_t callback)
DEBUGLOG("Add_internal_client, fd = %d\n", fd);
- client = malloc(sizeof(struct local_client));
+ client = calloc(1, sizeof(struct local_client));
if (!client)
{
DEBUGLOG("malloc failed\n");
return -1;
}
- memset(client, 0, sizeof(struct local_client));
client->fd = fd;
client->type = CLUSTER_INTERNAL;
client->callback = callback;
diff --git a/daemons/clvmd/clvmd-singlenode.c b/daemons/clvmd/clvmd-singlenode.c
index 298abcb2..3b35bf59 100644
--- a/daemons/clvmd/clvmd-singlenode.c
+++ b/daemons/clvmd/clvmd-singlenode.c
@@ -48,8 +48,15 @@ static void close_comms(void)
static int init_comms(void)
{
- struct sockaddr_un addr;
mode_t old_mask;
+ struct sockaddr_un addr = { .sun_family = AF_UNIX };
+
+ if (!dm_strncpy(addr.sun_path, SINGLENODE_CLVMD_SOCKNAME,
+ sizeof(addr.sun_path))) {
+ DEBUGLOG("%s: singlenode socket name too long.",
+ SINGLENODE_CLVMD_SOCKNAME);
+ return -1;
+ }
close_comms();
@@ -67,11 +74,6 @@ static int init_comms(void)
goto error;
}
- memset(&addr, 0, sizeof(addr));
- memcpy(addr.sun_path, SINGLENODE_CLVMD_SOCKNAME,
- sizeof(SINGLENODE_CLVMD_SOCKNAME));
- addr.sun_family = AF_UNIX;
-
if (bind(listen_fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
DEBUGLOG("Can't bind local socket: %s\n", strerror(errno));
goto error;
diff --git a/daemons/clvmd/clvmd.c b/daemons/clvmd/clvmd.c
index 0b866e6b..4efa2373 100644
--- a/daemons/clvmd/clvmd.c
+++ b/daemons/clvmd/clvmd.c
@@ -2092,20 +2092,23 @@ static int add_to_lvmqueue(struct local_client *client, struct clvm_header *msg,
static int check_local_clvmd(void)
{
int local_socket;
- struct sockaddr_un sockaddr;
int ret = 0;
+ struct sockaddr_un sockaddr = { .sun_family = AF_UNIX };
+
+ if (!dm_strncpy(sockaddr.sun_path, CLVMD_SOCKNAME, sizeof(sockaddr.sun_path))) {
+ log_error("%s: clvmd socket name too long.", CLVMD_SOCKNAME);
+ return -1;
+ }
/* Open local socket */
if ((local_socket = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) {
+ log_sys_error("socket", "local socket");
return -1;
}
- memset(&sockaddr, 0, sizeof(sockaddr));
- memcpy(sockaddr.sun_path, CLVMD_SOCKNAME, sizeof(CLVMD_SOCKNAME));
- sockaddr.sun_family = AF_UNIX;
-
if (connect(local_socket,(struct sockaddr *) &sockaddr,
sizeof(sockaddr))) {
+ log_sys_error("connect", "local socket");
ret = -1;
}
@@ -2127,9 +2130,14 @@ static void close_local_sock(int local_socket)
/* Open the local socket, that's the one we talk to libclvm down */
static int open_local_sock(void)
{
- int local_socket = -1;
- struct sockaddr_un sockaddr;
mode_t old_mask;
+ int local_socket = -1;
+ struct sockaddr_un sockaddr = { .sun_family = AF_UNIX };
+
+ if (!dm_strncpy(sockaddr.sun_path, CLVMD_SOCKNAME, sizeof(sockaddr.sun_path))) {
+ log_error("%s: clvmd socket name too long.", CLVMD_SOCKNAME);
+ return -1;
+ }
close_local_sock(local_socket);
@@ -2148,9 +2156,6 @@ static int open_local_sock(void)
DEBUGLOG("setting CLOEXEC on local_socket failed: %s\n", strerror(errno));
fcntl(local_socket, F_SETFL, fcntl(local_socket, F_GETFL, 0) | O_NONBLOCK);
- memset(&sockaddr, 0, sizeof(sockaddr));
- memcpy(sockaddr.sun_path, CLVMD_SOCKNAME, sizeof(CLVMD_SOCKNAME));
- sockaddr.sun_family = AF_UNIX;
if (bind(local_socket, (struct sockaddr *) &sockaddr, sizeof(sockaddr))) {
log_error("can't bind local socket: %m");
diff --git a/daemons/clvmd/refresh_clvmd.c b/daemons/clvmd/refresh_clvmd.c
index 9ce02f2f..28b5625f 100644
--- a/daemons/clvmd/refresh_clvmd.c
+++ b/daemons/clvmd/refresh_clvmd.c
@@ -47,7 +47,12 @@ static int _clvmd_sock = -1;
static int _open_local_sock(void)
{
int local_socket;
- struct sockaddr_un sockaddr;
+ struct sockaddr_un sockaddr = { .sun_family = AF_UNIX };
+
+ if (!dm_strncpy(sockaddr.sun_path, CLVMD_SOCKNAME, sizeof(sockaddr.sun_path))) {
+ fprintf(stderr, "%s: clvmd socket name too long.", CLVMD_SOCKNAME);
+ return -1;
+ }
/* Open local socket */
if ((local_socket = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) {
@@ -55,11 +60,6 @@ static int _open_local_sock(void)
return -1;
}
- memset(&sockaddr, 0, sizeof(sockaddr));
- memcpy(sockaddr.sun_path, CLVMD_SOCKNAME, sizeof(CLVMD_SOCKNAME));
-
- sockaddr.sun_family = AF_UNIX;
-
if (connect(local_socket,(struct sockaddr *) &sockaddr,
sizeof(sockaddr))) {
int saved_errno = errno;
diff --git a/daemons/cmirrord/cluster.c b/daemons/cmirrord/cluster.c
index 9fbf8007..70c76c3a 100644
--- a/daemons/cmirrord/cluster.c
+++ b/daemons/cmirrord/cluster.c
@@ -1249,7 +1249,7 @@ static void cpg_join_callback(struct clog_cpg *match,
uint32_t my_pid = (uint32_t)getpid();
uint32_t lowest = match->lowest_id;
struct clog_request *rq;
- char dbuf[32];
+ char dbuf[32] = { 0 };
/* Assign my_cluster_id */
if ((my_cluster_id == 0xDEAD) && (joined->pid == my_pid))
@@ -1265,7 +1265,6 @@ static void cpg_join_callback(struct clog_cpg *match,
if (joined->nodeid == my_cluster_id)
goto out;
- memset(dbuf, 0, sizeof(dbuf));
for (i = 0; i < member_list_entries - 1; i++)
sprintf(dbuf+strlen(dbuf), "%u-", member_list[i].nodeid);
sprintf(dbuf+strlen(dbuf), "(%u)", joined->nodeid);
diff --git a/daemons/cmirrord/functions.c b/daemons/cmirrord/functions.c
index 3e8fd202..f6e09180 100644
--- a/daemons/cmirrord/functions.c
+++ b/daemons/cmirrord/functions.c
@@ -235,11 +235,9 @@ static int rw_log(struct log_c *lc, int do_write)
*/
static int read_log(struct log_c *lc)
{
- struct log_header lh;
+ struct log_header lh = { 0 };
size_t bitset_size;
- memset(&lh, 0, sizeof(struct log_header));
-
if (rw_log(lc, 0))
return -EIO; /* Failed disk read */
@@ -1724,14 +1722,12 @@ int do_request(struct clog_request *rq, int server)
static void print_bits(dm_bitset_t bs, int print)
{
int i, size;
- char outbuf[128];
+ char outbuf[128] = { 0 };
unsigned char *buf = (unsigned char *)(bs + 1);
size = (*bs % 8) ? 1 : 0;
size += (*bs / 8);
- memset(outbuf, 0, sizeof(outbuf));
-
for (i = 0; i < size; i++) {
if (!(i % 16)) {
if (outbuf[0] != '\0') {
diff --git a/daemons/dmeventd/dmeventd.c b/daemons/dmeventd/dmeventd.c
index 91ef690b..2ffe7f4d 100644
--- a/daemons/dmeventd/dmeventd.c
+++ b/daemons/dmeventd/dmeventd.c
@@ -1437,11 +1437,9 @@ static int _do_process_request(struct dm_event_daemon_message *msg)
{
int ret;
char *answer;
- static struct message_data message_data;
+ struct message_data message_data = { .msg = msg };
/* Parse the message. */
- memset(&message_data, 0, sizeof(message_data));
- message_data.msg = msg;
if (msg->cmd == DM_EVENT_CMD_HELLO || msg->cmd == DM_EVENT_CMD_DIE) {
ret = 0;
answer = msg->data;
@@ -1473,9 +1471,7 @@ static int _do_process_request(struct dm_event_daemon_message *msg)
static void _process_request(struct dm_event_fifos *fifos)
{
int die = 0;
- struct dm_event_daemon_message msg;
-
- memset(&msg, 0, sizeof(msg));
+ struct dm_event_daemon_message msg = { 0 };
/*
* Read the request from the client (client_read, client_write
@@ -1580,10 +1576,8 @@ static void _sig_alarm(int signum __attribute__((unused)))
static void _init_thread_signals(void)
{
sigset_t my_sigset;
- struct sigaction act;
+ struct sigaction act = { .sa_handler = _sig_alarm };
- memset(&act, 0, sizeof(act));
- act.sa_handler = _sig_alarm;
sigaction(SIGALRM, &act, NULL);
sigfillset(&my_sigset);