mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-03 05:18:29 +03:00
Check result of dm_snprintf for error
This commit is contained in:
parent
5fc79ef6dc
commit
2d6e83ea19
@ -409,12 +409,14 @@ int lock_resource(struct cmd_context *cmd, const char *resource, uint32_t flags)
|
||||
}
|
||||
|
||||
/* If the VG name is empty then lock the unused PVs */
|
||||
if (is_orphan_vg(resource) || is_global_vg(resource) || (flags & LCK_CACHE))
|
||||
dm_snprintf(lockname, sizeof(lockname), "P_%s",
|
||||
resource);
|
||||
else
|
||||
dm_snprintf(lockname, sizeof(lockname), "V_%s",
|
||||
resource);
|
||||
if (dm_snprintf(lockname, sizeof(lockname), "%c_%s",
|
||||
(is_orphan_vg(resource) ||
|
||||
is_global_vg(resource) ||
|
||||
(flags & LCK_CACHE)) ? 'P' : 'V',
|
||||
resource) < 0) {
|
||||
log_error("Locking resource %s too long.", resource);
|
||||
return 0;
|
||||
}
|
||||
|
||||
lock_scope = "VG";
|
||||
clvmd_cmd = CLVMD_CMD_LOCK_VG;
|
||||
|
@ -268,12 +268,20 @@ static int _file_lock_resource(struct cmd_context *cmd, const char *resource,
|
||||
if (flags & LCK_CACHE)
|
||||
break;
|
||||
|
||||
if (is_orphan_vg(resource) || is_global_vg(resource))
|
||||
dm_snprintf(lockfile, sizeof(lockfile),
|
||||
"%s/P_%s", _lock_dir, resource + 1);
|
||||
else
|
||||
dm_snprintf(lockfile, sizeof(lockfile),
|
||||
"%s/V_%s", _lock_dir, resource);
|
||||
if (is_orphan_vg(resource) || is_global_vg(resource)) {
|
||||
if (dm_snprintf(lockfile, sizeof(lockfile),
|
||||
"%s/P_%s", _lock_dir, resource + 1) < 0) {
|
||||
log_error("Too long locking filename %s/P_%s.",
|
||||
_lock_dir, resource + 1);
|
||||
return 0;
|
||||
}
|
||||
} else
|
||||
if (dm_snprintf(lockfile, sizeof(lockfile),
|
||||
"%s/V_%s", _lock_dir, resource) < 0) {
|
||||
log_error("Too long locking filename %s/V_%s.",
|
||||
_lock_dir, resource);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!_lock_file(lockfile, flags))
|
||||
return_0;
|
||||
|
Loading…
Reference in New Issue
Block a user