mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
lvmetad: fix segfault on i386
Sending %d as format argument in lvmetad_vg_remove_pending() will cause segfaults in config_make_nodes_v() when va_arg() casts to int64_t. Also, it is clearly advertised in the lvm source code that using plain %d is prohibited, so let's switch to FMTd64. Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
This commit is contained in:
parent
5f2c942000
commit
46b735c937
2
lib/cache/lvmetad.c
vendored
2
lib/cache/lvmetad.c
vendored
@ -1304,7 +1304,7 @@ int lvmetad_vg_remove_pending(struct volume_group *vg)
|
||||
reply = _lvmetad_send(vg->cmd, "set_vg_info",
|
||||
"name = %s", vg->name,
|
||||
"uuid = %s", uuid,
|
||||
"version = %d", 0,
|
||||
"version = %"PRId64, (int64_t)0,
|
||||
NULL);
|
||||
|
||||
if (!_lvmetad_handle_reply(reply, "set_vg_info", vg->name, NULL)) {
|
||||
|
@ -260,7 +260,7 @@ struct dm_config_node *config_make_nodes_v(struct dm_config_tree *cft,
|
||||
key[fmt - next] = '\0';
|
||||
fmt += 2;
|
||||
|
||||
if (!strcmp(fmt, "%d") || !strcmp(fmt, FMTd64)) {
|
||||
if (!strcmp(fmt, FMTd64)) {
|
||||
int64_t value = va_arg(ap, int64_t);
|
||||
if (!(cn = make_int_node(cft, key, value, parent, pre_sib)))
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user