diff options
author | Camil Staps | 2015-08-21 14:57:39 +0200 |
---|---|---|
committer | Camil Staps | 2015-08-21 14:57:39 +0200 |
commit | 9ff037e31d23bb1ebda779bb6f826abba9b6aa0b (patch) | |
tree | 38dd57a09b3d7137aa2c115fe21c752f341b74ea /Linux_C_12 | |
parent | Code style (diff) |
Clean String generation security and fix
Diffstat (limited to 'Linux_C_12')
-rw-r--r-- | Linux_C_12/util_121.c | 12 |
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;
|