[lvm-devel] master - libdm: check for size when opening control node

Zdenek Kabelac zkabelac at fedoraproject.org
Tue Apr 8 09:02:34 UTC 2014


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=2c2819763083d3c2e6b011117d8fa27c77a4d4e8
Commit:        2c2819763083d3c2e6b011117d8fa27c77a4d4e8
Parent:        583fbdba84afae3a045915603c6c057c76fcf485
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Fri Apr 4 21:46:45 2014 +0200
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Tue Apr 8 11:00:13 2014 +0200

libdm: check for size when opening control node

Use dm_snprintf() to detect fail if open_control node would
not have fit into buffer.
---
 WHATS_NEW_DM              |    1 +
 libdm/ioctl/libdm-iface.c |    3 ++-
 2 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM
index 49a7812..1c0843e 100644
--- a/WHATS_NEW_DM
+++ b/WHATS_NEW_DM
@@ -1,5 +1,6 @@
 Version 1.02.85 - 
 ===================================
+  Check for sprintf error when creating path for dm control node.
   When buffer for dm_get_library_version() is too small, return error code.
   Always reinitialize _name_mangling_mode in dm_lib_init().
   Add tracking flag about implicitly added devices into dm_tree.
diff --git a/libdm/ioctl/libdm-iface.c b/libdm/ioctl/libdm-iface.c
index 7b1fead..25f1d90 100644
--- a/libdm/ioctl/libdm-iface.c
+++ b/libdm/ioctl/libdm-iface.c
@@ -380,7 +380,8 @@ static int _open_control(void)
 	if (!_uname())
 		return 0;
 
-	snprintf(control, sizeof(control), "%s/%s", dm_dir(), DM_CONTROL_NODE);
+	if (dm_snprintf(control, sizeof(control), "%s/%s", dm_dir(), DM_CONTROL_NODE) < 0)
+		goto_bad;
 
 	/*
 	 * Prior to 2.6.36 the minor number should be looked up in /proc.




More information about the lvm-devel mailing list