summaryrefslogtreecommitdiffstats
path: root/lib/locking/file_locking.c
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2011-01-05 15:10:30 +0000
committerZdenek Kabelac <zkabelac@redhat.com>2011-01-05 15:10:30 +0000
commit2d6e83ea19d98832bb6f3726b3a19190fe5d779b (patch)
tree9a2b54456ba5d7aae927c088c018cbc170b31775 /lib/locking/file_locking.c
parent5fc79ef6dcec6751ef0d62b6db9e446208509636 (diff)
downloadlvm2-2d6e83ea19d98832bb6f3726b3a19190fe5d779b.tar.gz
lvm2-2d6e83ea19d98832bb6f3726b3a19190fe5d779b.tar.xz
lvm2-2d6e83ea19d98832bb6f3726b3a19190fe5d779b.zip
Check result of dm_snprintf for error
Diffstat (limited to 'lib/locking/file_locking.c')
-rw-r--r--lib/locking/file_locking.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/lib/locking/file_locking.c b/lib/locking/file_locking.c
index 9137a30a..d74bfd18 100644
--- a/lib/locking/file_locking.c
+++ b/lib/locking/file_locking.c
@@ -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;