aboutsummaryrefslogtreecommitdiff
path: root/Linux_C_12
diff options
context:
space:
mode:
authorCamil Staps2015-08-21 14:57:39 +0200
committerCamil Staps2015-08-21 14:57:39 +0200
commit9ff037e31d23bb1ebda779bb6f826abba9b6aa0b (patch)
tree38dd57a09b3d7137aa2c115fe21c752f341b74ea /Linux_C_12
parentCode style (diff)
Clean String generation security and fix
Diffstat (limited to 'Linux_C_12')
-rw-r--r--Linux_C_12/util_121.c12
1 files 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;