1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-02-21 05:57:48 +03:00

cleanup: replace memset with struct initilization

Simplifies the code, properly detects too long socket paths,
drops unused parameter.
This commit is contained in:
Zdenek Kabelac 2012-06-21 21:19:28 +02:00
parent da42ee3a1f
commit 6f3cd63551
22 changed files with 60 additions and 86 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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 };
/* Open local socket */
if ((local_socket = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) {
if (!dm_strncpy(sockaddr.sun_path, CLVMD_SOCKNAME, sizeof(sockaddr.sun_path))) {
log_error("%s: clvmd socket name too long.", CLVMD_SOCKNAME);
return -1;
}
memset(&sockaddr, 0, sizeof(sockaddr));
memcpy(sockaddr.sun_path, CLVMD_SOCKNAME, sizeof(CLVMD_SOCKNAME));
sockaddr.sun_family = AF_UNIX;
/* Open local socket */
if ((local_socket = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) {
log_sys_error("socket", "local socket");
return -1;
}
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");

View File

@ -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;

View File

@ -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);

View File

@ -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') {

View File

@ -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);

2
lib/cache/lvmetad.c vendored
View File

@ -669,7 +669,6 @@ int pvscan_lvmetad_single(struct cmd_context *cmd, struct device *dev)
{
struct label *label;
struct lvmcache_info *info;
struct physical_volume pv;
struct _pvscan_lvmetad_baton baton;
/* Create a dummy instance. */
struct format_instance_ctx fic = { .type = 0 };
@ -687,7 +686,6 @@ int pvscan_lvmetad_single(struct cmd_context *cmd, struct device *dev)
}
info = (struct lvmcache_info *) label->info;
memset(&pv, 0, sizeof(pv));
baton.vg = NULL;
baton.fid = lvmcache_fmt(info)->ops->create_instance(lvmcache_fmt(info),

View File

@ -736,11 +736,9 @@ static struct dev_filter *_init_filter_components(struct cmd_context *cmd)
{
int nr_filt = 0;
const struct dm_config_node *cn;
struct dev_filter *filters[MAX_FILTERS];
struct dev_filter *filters[MAX_FILTERS] = { 0 };
struct dev_filter *composite;
memset(filters, 0, sizeof(filters));
/*
* Filters listed in order: top one gets applied first.
* Failure to initialise some filters is not fatal.

View File

@ -556,7 +556,7 @@ int export_lvs(struct disk_list *dl, struct volume_group *vg,
int import_snapshots(struct dm_pool *mem __attribute__((unused)), struct volume_group *vg,
struct dm_list *pvds)
{
struct logical_volume *lvs[MAX_LV];
struct logical_volume *lvs[MAX_LV] = { 0 };
struct disk_list *dl;
struct lvd_list *ll;
struct lv_disk *lvd;
@ -564,7 +564,6 @@ int import_snapshots(struct dm_pool *mem __attribute__((unused)), struct volume_
struct logical_volume *org, *cow;
/* build an index of lv numbers */
memset(lvs, 0, sizeof(lvs));
dm_list_iterate_items(dl, pvds) {
dm_list_iterate_items(ll, &dl->lvds) {
lvd = &ll->lvd;

View File

@ -29,7 +29,7 @@ int get_free_vg_number(struct format_instance *fid, struct dev_filter *filter,
struct dm_list all_pvs;
struct disk_list *dl;
struct dm_pool *mem = dm_pool_create("lvm1 vg_number", 10 * 1024);
int numbers[MAX_VG], i, r = 0;
int i, r = 0, numbers[MAX_VG] = { 0 };
dm_list_init(&all_pvs);
@ -39,8 +39,6 @@ int get_free_vg_number(struct format_instance *fid, struct dev_filter *filter,
if (!read_pvs_in_vg(fid->fmt, NULL, filter, mem, &all_pvs))
goto_out;
memset(numbers, 0, sizeof(numbers));
dm_list_iterate_items(dl, &all_pvs) {
if (!*dl->pvd.vg_name || !strcmp((char *)dl->pvd.vg_name, candidate_vg))
continue;

View File

@ -1266,11 +1266,10 @@ static int _write_single_mda(struct metadata_area *mda, void *baton)
struct _write_single_mda_baton *p = baton;
struct mda_context *mdac;
char buf[MDA_HEADER_SIZE] __attribute__((aligned(8)));
char buf[MDA_HEADER_SIZE] __attribute__((aligned(8))) = { 0 };
struct mda_header *mdah = (struct mda_header *) buf;
mdac = mda->metadata_locn;
memset(&buf, 0, sizeof(buf));
mdah->size = mdac->area.size;
rlocn_set_ignored(mdah->raw_locns, mda_is_ignored(mda));

View File

@ -65,7 +65,12 @@ static int _clvmd_sock = -1;
static int _open_local_sock(int suppress_messages)
{
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))) {
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) {
@ -74,10 +79,6 @@ static int _open_local_sock(int suppress_messages)
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))) {

View File

@ -180,13 +180,11 @@ static struct seg_pvs *_find_seg_pvs_by_le(struct dm_list *list, uint32_t le)
*/
uint32_t find_free_lvnum(struct logical_volume *lv)
{
int lvnum_used[MAX_RESTRICTED_LVS + 1];
int lvnum_used[MAX_RESTRICTED_LVS + 1] = { 0 };
uint32_t i = 0;
struct lv_list *lvl;
int lvnum;
memset(&lvnum_used, 0, sizeof(lvnum_used));
dm_list_iterate_items(lvl, &lv->vg->lvs) {
lvnum = lvnum_from_lvid(&lvl->lv->lvid);
if (lvnum <= MAX_RESTRICTED_LVS)

View File

@ -26,17 +26,16 @@
daemon_handle daemon_open(daemon_info i) {
daemon_handle h = { .protocol_version = 0, .error = 0 };
daemon_reply r = { .cft = NULL };
struct sockaddr_un sockaddr;
struct sockaddr_un sockaddr = { .sun_family = AF_UNIX };
if ((h.socket_fd = socket(PF_UNIX, SOCK_STREAM /* | SOCK_NONBLOCK */, 0)) < 0)
goto error;
memset(&sockaddr, 0, sizeof(sockaddr));
if (!dm_strncpy(sockaddr.sun_path, i.socket, sizeof(sockaddr.sun_path))) {
fprintf(stderr, "%s: daemon socket path too long.\n", i.socket);
goto error;
}
sockaddr.sun_family = AF_UNIX;
if (connect(h.socket_fd,(struct sockaddr *) &sockaddr, sizeof(sockaddr)))
goto error;

View File

@ -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.");

View File

@ -1082,7 +1082,7 @@ struct dm_tree_node *dm_tree_add_new_dev_with_udev_flags(struct dm_tree *dtree,
uint16_t udev_flags)
{
struct dm_tree_node *dnode;
struct dm_info info;
struct dm_info info = { 0 };
const char *name2;
const char *uuid2;
@ -1102,8 +1102,6 @@ struct dm_tree_node *dm_tree_add_new_dev_with_udev_flags(struct dm_tree *dtree,
return NULL;
}
memset(&info, 0, sizeof(info));
if (!(dnode = _create_dm_tree_node(dtree, name2, uuid2, &info,
context, 0)))
return_NULL;

View File

@ -144,7 +144,7 @@ static int _lv_set_default_linear_params(struct cmd_context *cmd,
*/
lv_t lvm_vg_create_lv_linear(vg_t vg, const char *name, uint64_t size)
{
struct lvcreate_params lp;
struct lvcreate_params lp = { 0 };
uint64_t extents;
struct lv_list *lvl;
@ -152,7 +152,7 @@ lv_t lvm_vg_create_lv_linear(vg_t vg, const char *name, uint64_t size)
return NULL;
if (!vg_check_write_mode(vg))
return NULL;
memset(&lp, 0, sizeof(lp));
extents = extents_from_size(vg->cmd, size / SECTOR_SIZE,
vg->extent_size);
_lv_set_default_params(&lp, vg, name, extents);

View File

@ -50,9 +50,8 @@ struct lvm_property_value get_property(const pv_t pv, const vg_t vg,
const pvseg_t pvseg, const char *name)
{
struct lvm_property_type prop;
struct lvm_property_value v;
struct lvm_property_value v = { 0 };
memset(&v, 0, sizeof(v));
prop.id = name;
if (pv) {

View File

@ -28,9 +28,9 @@ static void _pvscan_display_single(struct cmd_context *cmd,
char uuid[64] __attribute__((aligned(8)));
unsigned vg_name_len = 0;
char pv_tmp_name[NAME_LEN] = { 0, };
char vg_tmp_name[NAME_LEN] = { 0, };
char vg_name_this[NAME_LEN] = { 0, };
char pv_tmp_name[NAME_LEN] = { 0 };
char vg_tmp_name[NAME_LEN] = { 0 };
char vg_name_this[NAME_LEN] = { 0 };
/* short listing? */
if (arg_count(cmd, short_ARG) > 0) {
@ -49,8 +49,6 @@ static void _pvscan_display_single(struct cmd_context *cmd,
/* return; */
}
memset(pv_tmp_name, 0, sizeof(pv_tmp_name));
vg_name_len = strlen(pv_vg_name(pv)) + 1;
if (arg_count(cmd, uuid_ARG)) {

View File

@ -674,7 +674,6 @@ static int _process_all_devs(struct cmd_context *cmd, void *handle,
dm_list_init(&pv_dummy.tags);
dm_list_init(&pv_dummy.segments);
pv_dummy.dev = dev;
pv_dummy.fmt = NULL;
pv = &pv_dummy;
}
ret = process_single_pv(cmd, NULL, pv, handle);

View File

@ -158,11 +158,9 @@ static void check_object_growth()
{
int i;
struct dm_pool *p = dm_pool_create("", 32);
char data[100];
char data[100] = { 0 };
void *obj;
memset(data, 0, sizeof(data));
dm_pool_begin_object(p, 43);
for (i = 1; i < 100; i++)
dm_pool_grow_object(p, data, i);