[Cluster-devel] [PATCH] rgmanager: reslist: another string related cleanup

Jan Pokorný jpokorny at redhat.com
Fri Apr 6 19:38:03 UTC 2012


Signed-off-by: Jan Pokorný <jpokorny at redhat.com>
---
 reslist.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/reslist.c b/reslist.c
index b75f4b0..43430cd 100644
--- a/reslist.c
+++ b/reslist.c
@@ -107,9 +107,12 @@ _attr_value(resource_node_t *node, const char *attrname, const char *ptype)
 		/* Difference guaranteed to be non-negative
 		   (for x >= 0: &ra->ra_value[x] >= &ra->ra_value[0]) */
 		len = (c - ra->ra_value);
-		memset(p_type, 0, sizeof(p_type));
+		if (len >= sizeof(p_type))
+			len = sizeof(p_type) - 1;
+
 		memcpy(p_type, ra->ra_value, len);
-		
+		p_type[sizeof(p_type)-1] = '\0';
+
 		/* Skip the "%" and recurse */
 		return _attr_value(node->rn_parent, ++c, p_type);
 	}




More information about the Cluster-devel mailing list