diff --git a/src/vuln-3/dc.c b/src/vuln-3/dc.c
index 7e1fe572e752c553dc33c6fed7b891bcd5be9ce6..3a6da7594dd2f2707eb60b7f7437f1f3ad7067a7 100644
--- a/src/vuln-3/dc.c
+++ b/src/vuln-3/dc.c
@@ -74,13 +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[5];
+  /*---- vuln-3 ----*/
+  static char varname_copy[1015] = {};
   unsigned int count = 0;
   while (varname[count] != '\0') {
 	  varname_copy[count] = varname[count++];
   }
-
-  new->varname = varname_copy;
+  new->varname = strdup(varname_copy);
 
   assert(new->varname != NULL && "new: strdup varname failed");
   new->value = value;