Skip to content

Commit 6f3cd63

Browse files
author
Zdenek Kabelac
committed
cleanup: replace memset with struct initilization
Simplifies the code, properly detects too long socket paths, drops unused parameter.
1 parent da42ee3 commit 6f3cd63

File tree

22 files changed

+59
-85
lines changed

22 files changed

+59
-85
lines changed

daemons/clvmd/clvmd-openais.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,14 +197,13 @@ static int add_internal_client(int fd, fd_callback_t callback)
197197

198198
DEBUGLOG("Add_internal_client, fd = %d\n", fd);
199199

200-
client = malloc(sizeof(struct local_client));
200+
client = calloc(1, sizeof(struct local_client));
201201
if (!client)
202202
{
203203
DEBUGLOG("malloc failed\n");
204204
return -1;
205205
}
206206

207-
memset(client, 0, sizeof(struct local_client));
208207
client->fd = fd;
209208
client->type = CLUSTER_INTERNAL;
210209
client->callback = callback;

daemons/clvmd/clvmd-singlenode.c

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,15 @@ static void close_comms(void)
4848

4949
static int init_comms(void)
5050
{
51-
struct sockaddr_un addr;
5251
mode_t old_mask;
52+
struct sockaddr_un addr = { .sun_family = AF_UNIX };
53+
54+
if (!dm_strncpy(addr.sun_path, SINGLENODE_CLVMD_SOCKNAME,
55+
sizeof(addr.sun_path))) {
56+
DEBUGLOG("%s: singlenode socket name too long.",
57+
SINGLENODE_CLVMD_SOCKNAME);
58+
return -1;
59+
}
5360

5461
close_comms();
5562

@@ -67,11 +74,6 @@ static int init_comms(void)
6774
goto error;
6875
}
6976

70-
memset(&addr, 0, sizeof(addr));
71-
memcpy(addr.sun_path, SINGLENODE_CLVMD_SOCKNAME,
72-
sizeof(SINGLENODE_CLVMD_SOCKNAME));
73-
addr.sun_family = AF_UNIX;
74-
7577
if (bind(listen_fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
7678
DEBUGLOG("Can't bind local socket: %s\n", strerror(errno));
7779
goto error;

daemons/clvmd/clvmd.c

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2092,20 +2092,23 @@ static int add_to_lvmqueue(struct local_client *client, struct clvm_header *msg,
20922092
static int check_local_clvmd(void)
20932093
{
20942094
int local_socket;
2095-
struct sockaddr_un sockaddr;
20962095
int ret = 0;
2096+
struct sockaddr_un sockaddr = { .sun_family = AF_UNIX };
2097+
2098+
if (!dm_strncpy(sockaddr.sun_path, CLVMD_SOCKNAME, sizeof(sockaddr.sun_path))) {
2099+
log_error("%s: clvmd socket name too long.", CLVMD_SOCKNAME);
2100+
return -1;
2101+
}
20972102

20982103
/* Open local socket */
20992104
if ((local_socket = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) {
2105+
log_sys_error("socket", "local socket");
21002106
return -1;
21012107
}
21022108

2103-
memset(&sockaddr, 0, sizeof(sockaddr));
2104-
memcpy(sockaddr.sun_path, CLVMD_SOCKNAME, sizeof(CLVMD_SOCKNAME));
2105-
sockaddr.sun_family = AF_UNIX;
2106-
21072109
if (connect(local_socket,(struct sockaddr *) &sockaddr,
21082110
sizeof(sockaddr))) {
2111+
log_sys_error("connect", "local socket");
21092112
ret = -1;
21102113
}
21112114

@@ -2127,9 +2130,14 @@ static void close_local_sock(int local_socket)
21272130
/* Open the local socket, that's the one we talk to libclvm down */
21282131
static int open_local_sock(void)
21292132
{
2130-
int local_socket = -1;
2131-
struct sockaddr_un sockaddr;
21322133
mode_t old_mask;
2134+
int local_socket = -1;
2135+
struct sockaddr_un sockaddr = { .sun_family = AF_UNIX };
2136+
2137+
if (!dm_strncpy(sockaddr.sun_path, CLVMD_SOCKNAME, sizeof(sockaddr.sun_path))) {
2138+
log_error("%s: clvmd socket name too long.", CLVMD_SOCKNAME);
2139+
return -1;
2140+
}
21332141

21342142
close_local_sock(local_socket);
21352143

@@ -2148,9 +2156,6 @@ static int open_local_sock(void)
21482156
DEBUGLOG("setting CLOEXEC on local_socket failed: %s\n", strerror(errno));
21492157
fcntl(local_socket, F_SETFL, fcntl(local_socket, F_GETFL, 0) | O_NONBLOCK);
21502158

2151-
memset(&sockaddr, 0, sizeof(sockaddr));
2152-
memcpy(sockaddr.sun_path, CLVMD_SOCKNAME, sizeof(CLVMD_SOCKNAME));
2153-
sockaddr.sun_family = AF_UNIX;
21542159

21552160
if (bind(local_socket, (struct sockaddr *) &sockaddr, sizeof(sockaddr))) {
21562161
log_error("can't bind local socket: %m");

daemons/clvmd/refresh_clvmd.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,19 +47,19 @@ static int _clvmd_sock = -1;
4747
static int _open_local_sock(void)
4848
{
4949
int local_socket;
50-
struct sockaddr_un sockaddr;
50+
struct sockaddr_un sockaddr = { .sun_family = AF_UNIX };
51+
52+
if (!dm_strncpy(sockaddr.sun_path, CLVMD_SOCKNAME, sizeof(sockaddr.sun_path))) {
53+
fprintf(stderr, "%s: clvmd socket name too long.", CLVMD_SOCKNAME);
54+
return -1;
55+
}
5156

5257
/* Open local socket */
5358
if ((local_socket = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) {
5459
fprintf(stderr, "Local socket creation failed: %s", strerror(errno));
5560
return -1;
5661
}
5762

58-
memset(&sockaddr, 0, sizeof(sockaddr));
59-
memcpy(sockaddr.sun_path, CLVMD_SOCKNAME, sizeof(CLVMD_SOCKNAME));
60-
61-
sockaddr.sun_family = AF_UNIX;
62-
6363
if (connect(local_socket,(struct sockaddr *) &sockaddr,
6464
sizeof(sockaddr))) {
6565
int saved_errno = errno;

daemons/cmirrord/cluster.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1249,7 +1249,7 @@ static void cpg_join_callback(struct clog_cpg *match,
12491249
uint32_t my_pid = (uint32_t)getpid();
12501250
uint32_t lowest = match->lowest_id;
12511251
struct clog_request *rq;
1252-
char dbuf[32];
1252+
char dbuf[32] = { 0 };
12531253

12541254
/* Assign my_cluster_id */
12551255
if ((my_cluster_id == 0xDEAD) && (joined->pid == my_pid))
@@ -1265,7 +1265,6 @@ static void cpg_join_callback(struct clog_cpg *match,
12651265
if (joined->nodeid == my_cluster_id)
12661266
goto out;
12671267

1268-
memset(dbuf, 0, sizeof(dbuf));
12691268
for (i = 0; i < member_list_entries - 1; i++)
12701269
sprintf(dbuf+strlen(dbuf), "%u-", member_list[i].nodeid);
12711270
sprintf(dbuf+strlen(dbuf), "(%u)", joined->nodeid);

daemons/cmirrord/functions.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -235,11 +235,9 @@ static int rw_log(struct log_c *lc, int do_write)
235235
*/
236236
static int read_log(struct log_c *lc)
237237
{
238-
struct log_header lh;
238+
struct log_header lh = { 0 };
239239
size_t bitset_size;
240240

241-
memset(&lh, 0, sizeof(struct log_header));
242-
243241
if (rw_log(lc, 0))
244242
return -EIO; /* Failed disk read */
245243

@@ -1724,14 +1722,12 @@ int do_request(struct clog_request *rq, int server)
17241722
static void print_bits(dm_bitset_t bs, int print)
17251723
{
17261724
int i, size;
1727-
char outbuf[128];
1725+
char outbuf[128] = { 0 };
17281726
unsigned char *buf = (unsigned char *)(bs + 1);
17291727

17301728
size = (*bs % 8) ? 1 : 0;
17311729
size += (*bs / 8);
17321730

1733-
memset(outbuf, 0, sizeof(outbuf));
1734-
17351731
for (i = 0; i < size; i++) {
17361732
if (!(i % 16)) {
17371733
if (outbuf[0] != '\0') {

daemons/dmeventd/dmeventd.c

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1437,11 +1437,9 @@ static int _do_process_request(struct dm_event_daemon_message *msg)
14371437
{
14381438
int ret;
14391439
char *answer;
1440-
static struct message_data message_data;
1440+
struct message_data message_data = { .msg = msg };
14411441

14421442
/* Parse the message. */
1443-
memset(&message_data, 0, sizeof(message_data));
1444-
message_data.msg = msg;
14451443
if (msg->cmd == DM_EVENT_CMD_HELLO || msg->cmd == DM_EVENT_CMD_DIE) {
14461444
ret = 0;
14471445
answer = msg->data;
@@ -1473,9 +1471,7 @@ static int _do_process_request(struct dm_event_daemon_message *msg)
14731471
static void _process_request(struct dm_event_fifos *fifos)
14741472
{
14751473
int die = 0;
1476-
struct dm_event_daemon_message msg;
1477-
1478-
memset(&msg, 0, sizeof(msg));
1474+
struct dm_event_daemon_message msg = { 0 };
14791475

14801476
/*
14811477
* Read the request from the client (client_read, client_write
@@ -1580,10 +1576,8 @@ static void _sig_alarm(int signum __attribute__((unused)))
15801576
static void _init_thread_signals(void)
15811577
{
15821578
sigset_t my_sigset;
1583-
struct sigaction act;
1579+
struct sigaction act = { .sa_handler = _sig_alarm };
15841580

1585-
memset(&act, 0, sizeof(act));
1586-
act.sa_handler = _sig_alarm;
15871581
sigaction(SIGALRM, &act, NULL);
15881582
sigfillset(&my_sigset);
15891583

lib/cache/lvmetad.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,6 @@ int pvscan_lvmetad_single(struct cmd_context *cmd, struct device *dev)
669669
{
670670
struct label *label;
671671
struct lvmcache_info *info;
672-
struct physical_volume pv;
673672
struct _pvscan_lvmetad_baton baton;
674673
/* Create a dummy instance. */
675674
struct format_instance_ctx fic = { .type = 0 };
@@ -687,7 +686,6 @@ int pvscan_lvmetad_single(struct cmd_context *cmd, struct device *dev)
687686
}
688687

689688
info = (struct lvmcache_info *) label->info;
690-
memset(&pv, 0, sizeof(pv));
691689

692690
baton.vg = NULL;
693691
baton.fid = lvmcache_fmt(info)->ops->create_instance(lvmcache_fmt(info),

lib/commands/toolcontext.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -736,11 +736,9 @@ static struct dev_filter *_init_filter_components(struct cmd_context *cmd)
736736
{
737737
int nr_filt = 0;
738738
const struct dm_config_node *cn;
739-
struct dev_filter *filters[MAX_FILTERS];
739+
struct dev_filter *filters[MAX_FILTERS] = { 0 };
740740
struct dev_filter *composite;
741741

742-
memset(filters, 0, sizeof(filters));
743-
744742
/*
745743
* Filters listed in order: top one gets applied first.
746744
* Failure to initialise some filters is not fatal.

lib/format1/import-export.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -556,15 +556,14 @@ int export_lvs(struct disk_list *dl, struct volume_group *vg,
556556
int import_snapshots(struct dm_pool *mem __attribute__((unused)), struct volume_group *vg,
557557
struct dm_list *pvds)
558558
{
559-
struct logical_volume *lvs[MAX_LV];
559+
struct logical_volume *lvs[MAX_LV] = { 0 };
560560
struct disk_list *dl;
561561
struct lvd_list *ll;
562562
struct lv_disk *lvd;
563563
int lvnum;
564564
struct logical_volume *org, *cow;
565565

566566
/* build an index of lv numbers */
567-
memset(lvs, 0, sizeof(lvs));
568567
dm_list_iterate_items(dl, pvds) {
569568
dm_list_iterate_items(ll, &dl->lvds) {
570569
lvd = &ll->lvd;

0 commit comments

Comments
 (0)