diff --git a/src/vuln-3/dc.c b/src/vuln-3/dc.c index 2b3e9405385ae3665e594bb1068fc130afd8a570..f7ee5b8b70d854354a27f3b806c93cf778e81019 100644 --- a/src/vuln-3/dc.c +++ b/src/vuln-3/dc.c @@ -74,10 +74,13 @@ static node_t *node_new(const char *varname, const value_t value){ assert(new != NULL && "new: malloc failed"); //new->varname = strdup(varname); + char varname_copy[1015]; + unsigned int count = 0; + while (varname[count] != '\0') { + varname_copy[count] = varname[count++]; + } - /*---- vuln-3 ----*/ - new->varname = (char *)malloc(1014 * sizeof(char)); - strcpy(new->varname, varname); + new->varname = varname_copy; assert(new->varname != NULL && "new: strdup varname failed"); new->value = value;