[lttng-dev] [PATCH lttng-ust] Fix: Unchecked asprintf/vasprintf return values

Jérémie Galarneau jeremie.galarneau at efficios.com
Fri Jul 12 12:37:28 EDT 2013


strp·may·be·modified·even·in·case·of·failure·according·to·the ASPRINTF(3) man
page.

Signed-off-by: Jérémie Galarneau <jeremie.galarneau at efficios.com>
---
 tests/tap.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/tests/tap.c b/tests/tap.c
index 86c89a2..8bf72f6 100644
--- a/tests/tap.c
+++ b/tests/tap.c
@@ -83,7 +83,9 @@ _gen_result(int ok, const char *func, char *file, unsigned int line,
 	   expansions on it */
 	if(test_name != NULL) {
 		va_start(ap, test_name);
-		vasprintf(&local_test_name, test_name, ap);
+		if (vasprintf(&local_test_name, test_name, ap) == -1) {
+			local_test_name = NULL;
+		}
 		va_end(ap);
 
 		/* Make sure the test name contains more than digits
@@ -299,7 +301,9 @@ skip(unsigned int n, char *fmt, ...)
 	LOCK;
 
 	va_start(ap, fmt);
-	asprintf(&skip_msg, fmt, ap);
+	if (asprintf(&skip_msg, fmt, ap) == -1) {
+		skip_msg = NULL;
+	}
 	va_end(ap);
 
 	while(n-- > 0) {
@@ -324,7 +328,9 @@ todo_start(char *fmt, ...)
 	LOCK;
 
 	va_start(ap, fmt);
-	vasprintf(&todo_msg, fmt, ap);
+	if (vasprintf(&todo_msg, fmt, ap) == -1) {
+		todo_msg = NULL;
+	}
 	va_end(ap);
 
 	todo = 1;
-- 
1.8.3.2




More information about the lttng-dev mailing list