public inbox for lvm2-cvs@sourceware.org
help / color / mirror / Atom feed
* LVM2/libdm libdm-string.c
@ 2012-02-23 18:19 zkabelac
  0 siblings, 0 replies; 4+ messages in thread
From: zkabelac @ 2012-02-23 18:19 UTC (permalink / raw)
  To: lvm-devel, lvm2-cvs

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	zkabelac@sourceware.org	2012-02-23 18:19:32

Modified files:
	libdm          : libdm-string.c 

Log message:
	Missed dm_free in last commit

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/libdm/libdm-string.c.diff?cvsroot=lvm2&r1=1.19&r2=1.20

--- LVM2/libdm/libdm-string.c	2012/02/23 18:05:12	1.19
+++ LVM2/libdm/libdm-string.c	2012/02/23 18:19:32	1.20
@@ -161,6 +161,7 @@
 			dm_free(buf);
 			return -1;
 		}
+		dm_free(buf);
 	} else
 		*result = buf;
 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* LVM2/libdm libdm-string.c
@ 2011-09-14 16:07 zkabelac
  0 siblings, 0 replies; 4+ messages in thread
From: zkabelac @ 2011-09-14 16:07 UTC (permalink / raw)
  To: lvm-devel, lvm2-cvs

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	zkabelac@sourceware.org	2011-09-14 16:07:08

Modified files:
	libdm          : libdm-string.c 

Log message:
	Fix memory overwrite
	
	Transfer of build_dm_uuid() function into libdm made uuid_prefix as parameter,
	thus sizeof() was replaced with strlen() and room for '\0' missed.
	
	As it's only fix in current version - no whatsnew.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/libdm/libdm-string.c.diff?cvsroot=lvm2&r1=1.16&r2=1.17

--- LVM2/libdm/libdm-string.c	2011/09/01 17:58:27	1.16
+++ LVM2/libdm/libdm-string.c	2011/09/14 16:07:07	1.17
@@ -347,7 +347,7 @@
 	if (!layer)
 		layer = "";
 
-	len = strlen(uuid_prefix) + strlen(lvid) + strlen(layer) + 1;
+	len = strlen(uuid_prefix) + strlen(lvid) + strlen(layer) + 2;
 
 	if (!(dmuuid = dm_pool_alloc(mem, len))) {
 		log_error("build_dm_name: Allocation failed for %" PRIsize_t


^ permalink raw reply	[flat|nested] 4+ messages in thread

* LVM2/libdm libdm-string.c
@ 2011-09-01 17:58 agk
  0 siblings, 0 replies; 4+ messages in thread
From: agk @ 2011-09-01 17:58 UTC (permalink / raw)
  To: lvm-devel, lvm2-cvs

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	agk@sourceware.org	2011-09-01 17:58:27

Modified files:
	libdm          : libdm-string.c 

Log message:
	Add comments & remove always-included header.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/libdm/libdm-string.c.diff?cvsroot=lvm2&r1=1.15&r2=1.16

--- LVM2/libdm/libdm-string.c	2011/08/30 14:55:16	1.15
+++ LVM2/libdm/libdm-string.c	2011/09/01 17:58:27	1.16
@@ -13,7 +13,6 @@
  */
 
 #include "dmlib.h"
-#include "libdevmapper.h"
 
 #include <ctype.h>
 
@@ -179,6 +178,12 @@
 			(*count)++;
 }
 
+/*
+ * Count occurrences of 'c' in 'str' of length 'size'.
+ *
+ * Returns:
+ *   Number of occurrences of 'c'
+ */
 unsigned dm_count_chars(const char *str, size_t len, const int c)
 {
 	size_t i;
@@ -191,6 +196,9 @@
 	return count;
 }
 
+/*
+ * Length of string after escaping double quotes and backslashes.
+ */
 size_t dm_escaped_len(const char *str)
 {
 	size_t len = 1;
@@ -289,6 +297,9 @@
 	_quote_characters(out, src, '-', '-', 0);
 }
 
+/*
+ * <vg>-<lv>-<layer> or if !layer just <vg>-<lv>.
+ */
 char *dm_build_dm_name(struct dm_pool *mem, const char *vgname,
 		       const char *lvname, const char *layer)
 {
@@ -328,7 +339,7 @@
 	return r;
 }
 
-char *dm_build_dm_uuid(struct dm_pool *mem, const char *prefix, const char *lvid, const char *layer)
+char *dm_build_dm_uuid(struct dm_pool *mem, const char *uuid_prefix, const char *lvid, const char *layer)
 {
 	char *dmuuid;
 	size_t len;
@@ -336,7 +347,7 @@
 	if (!layer)
 		layer = "";
 
-	len = strlen(prefix) + strlen(lvid) + strlen(layer) + 1;
+	len = strlen(uuid_prefix) + strlen(lvid) + strlen(layer) + 1;
 
 	if (!(dmuuid = dm_pool_alloc(mem, len))) {
 		log_error("build_dm_name: Allocation failed for %" PRIsize_t
@@ -344,7 +355,7 @@
 		return NULL;
 	}
 
-	sprintf(dmuuid, "%s%s%s%s", prefix, lvid, (*layer) ? "-" : "", layer);
+	sprintf(dmuuid, "%s%s%s%s", uuid_prefix, lvid, (*layer) ? "-" : "", layer);
 
 	return dmuuid;
 }
@@ -362,11 +373,20 @@
 	return out;
 }
 
+/*
+ * Undo quoting in situ.
+ */
 void dm_unescape_double_quotes(char *src)
 {
 	_unquote_one_character(src, '\"', '\\');
 }
 
+/*
+ * Unescape colons and "at" signs in situ and save the substrings
+ * starting at the position of the first unescaped colon and the
+ * first unescaped "at" sign. This is normally used to unescape
+ * device names used as PVs.
+ */
 void dm_unescape_colons_and_at_signs(char *src,
 				     char **substr_first_unquoted_colon,
 				     char **substr_first_unquoted_at_sign)


^ permalink raw reply	[flat|nested] 4+ messages in thread

* LVM2/libdm libdm-string.c
@ 2010-11-23 15:00 zkabelac
  0 siblings, 0 replies; 4+ messages in thread
From: zkabelac @ 2010-11-23 15:00 UTC (permalink / raw)
  To: lvm-devel, lvm2-cvs

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	zkabelac@sourceware.org	2010-11-23 15:00:52

Modified files:
	libdm          : libdm-string.c 

Log message:
	Move va_end(ap)  so we do not leave with return -1 without calling it.
	Remove unneeded ';'

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/libdm/libdm-string.c.diff?cvsroot=lvm2&r1=1.13&r2=1.14

--- LVM2/libdm/libdm-string.c	2010/10/25 13:13:53	1.13
+++ LVM2/libdm/libdm-string.c	2010/11/23 15:00:52	1.14
@@ -144,6 +144,8 @@
 	while (!ok) {
 		va_start(ap, format);
 		n = vsnprintf(buf, size, format, ap);
+		va_end(ap);
+
 		if (0 <= n && n < size)
 			ok = 1;
 		else {
@@ -152,8 +154,7 @@
 			buf = dm_malloc(size);
 			if (!buf)
 				return -1;
-		};
-		va_end(ap);
+		}
 	}
 
 	*result = dm_strdup(buf);


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-02-23 18:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-23 18:19 LVM2/libdm libdm-string.c zkabelac
  -- strict thread matches above, loose matches on Subject: below --
2011-09-14 16:07 zkabelac
2011-09-01 17:58 agk
2010-11-23 15:00 zkabelac

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).