From: Mathieu Desnoyers Date: Tue, 7 Feb 2012 02:59:29 +0000 (-0500) Subject: Fix memory leak in get random string X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=commitdiff_plain;h=986122407a4279879094329dbfc19187f4a65faf Fix memory leak in get random string Signed-off-by: Mathieu Desnoyers --- diff --git a/tests/test_kernel_data_trace.c b/tests/test_kernel_data_trace.c index bfc0f41af..0a534699c 100644 --- a/tests/test_kernel_data_trace.c +++ b/tests/test_kernel_data_trace.c @@ -33,6 +33,8 @@ /* This path will NEVER be created in this test */ #define PATH1 "/tmp/.test-junk-lttng" +#define RANDOM_STRING_LEN 11 + /* For lttngerr.h */ int opt_quiet = 1; int opt_verbose = 0; @@ -43,22 +45,23 @@ static const char alphanum[] = "abcdefghijklmnopqrstuvwxyz"; static struct ltt_kernel_session *kern; +static char random_string[RANDOM_STRING_LEN]; /* * Return random string of 10 characters. + * Not thread-safe. */ static char *get_random_string(void) { int i; - char *str = malloc(11); - for (i = 0; i < 10; i++) { - str[i] = alphanum[rand() % (sizeof(alphanum) - 1)]; + for (i = 0; i < RANDOM_STRING_LEN - 1; i++) { + random_string[i] = alphanum[rand() % (sizeof(alphanum) - 1)]; } - str[10] = '\0'; + random_string[RANDOM_STRING_LEN - 1] = '\0'; - return str; + return random_string; } static void create_one_kernel_session(void) diff --git a/tests/test_sessions.c b/tests/test_sessions.c index f444e3043..3e876c889 100644 --- a/tests/test_sessions.c +++ b/tests/test_sessions.c @@ -37,6 +37,7 @@ #define PATH1 "/tmp/.test-junk-lttng" #define MAX_SESSIONS 10000 +#define RANDOM_STRING_LEN 11 /* * String of 263 caracters. NAME_MAX + "OVERFLOW". If OVERFLOW appears in the @@ -61,22 +62,23 @@ static const char alphanum[] = "0123456789" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz"; +static char random_string[RANDOM_STRING_LEN]; /* * Return random string of 10 characters. + * Not thread-safe. */ static char *get_random_string(void) { int i; - char *str = malloc(11); - for (i = 0; i < 10; i++) { - str[i] = alphanum[rand() % (sizeof(alphanum) - 1)]; + for (i = 0; i < RANDOM_STRING_LEN - 1; i++) { + random_string[i] = alphanum[rand() % (sizeof(alphanum) - 1)]; } - str[10] = '\0'; + random_string[RANDOM_STRING_LEN - 1] = '\0'; - return str; + return random_string; } /* diff --git a/tests/test_ust_data_trace.c b/tests/test_ust_data_trace.c index 6acd7a0d0..924cfe4b9 100644 --- a/tests/test_ust_data_trace.c +++ b/tests/test_ust_data_trace.c @@ -35,6 +35,8 @@ /* This path will NEVER be created in this test */ #define PATH1 "/tmp/.test-junk-lttng" +#define RANDOM_STRING_LEN 11 + /* For lttngerr.h */ int opt_quiet = 1; int opt_verbose = 0; @@ -43,25 +45,26 @@ static const char alphanum[] = "0123456789" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz"; +static char random_string[RANDOM_STRING_LEN]; static struct ltt_ust_session *usess; static struct lttng_domain dom; /* * Return random string of 10 characters. + * Not thread-safe. */ static char *get_random_string(void) { int i; - char *str = malloc(11); - for (i = 0; i < 10; i++) { - str[i] = alphanum[rand() % (sizeof(alphanum) - 1)]; + for (i = 0; i < RANDOM_STRING_LEN - 1; i++) { + random_string[i] = alphanum[rand() % (sizeof(alphanum) - 1)]; } - str[10] = '\0'; + random_string[RANDOM_STRING_LEN - 1] = '\0'; - return str; + return random_string; } static void create_one_ust_session(void)