From 9ff037e31d23bb1ebda779bb6f826abba9b6aa0b Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Fri, 21 Aug 2015 14:57:39 +0200 Subject: Clean String generation security and fix --- Linux_C_12/util_121.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Linux_C_12/util_121.c b/Linux_C_12/util_121.c index d633f64..641a5f3 100644 --- a/Linux_C_12/util_121.c +++ b/Linux_C_12/util_121.c @@ -156,17 +156,19 @@ char * cstring (CLEAN_STRING s) CLEAN_STRING cleanstring (char *s) { static CLEAN_STRING result_clean_string = NULL; - rprintf("[cleanstring: "); - if (result_clean_string) - rfree (result_clean_string); + rprintf("[cleanstring: "); + if (result_clean_string) { + rfree(result_clean_string); + result_clean_string = NULL; + } if (! s) { return NULL; } - result_clean_string = (CLEAN_STRING) rmalloc(sizeof(int) + rstrlen(s) + 1); + result_clean_string = (CLEAN_STRING) rmalloc(sizeof(struct clean_string) + sizeof(char) * rstrlen(s)); result_clean_string->length = rstrlen (s); - rsncopy (result_clean_string->characters, s, rstrlen (s) + 1); + rsncopy (result_clean_string->characters, s, rstrlen (s)); rprintf("%s", s); rprintf("]\n"); return result_clean_string; -- cgit v1.2.3