Branch: Tag:

2009-08-26

2009-08-26 12:25:57 by Martin Stjernholm <mast@lysator.liu.se>

Never put stuff on the freed part of the stack.

Rev: src/builtin_functions.c:1.691

2:   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: builtin_functions.c,v 1.690 2009/06/23 16:34:18 grubba Exp $ + || $Id: builtin_functions.c,v 1.691 2009/08/26 12:25:57 mast Exp $   */      #include "global.h"
437:    SIMPLE_TOO_FEW_ARGS_ERROR("copy_value",1);       pop_n_elems(args-1); -  copy_svalues_recursively_no_free(Pike_sp,Pike_sp-1,1,0); -  free_svalue(Pike_sp-1); -  Pike_sp[-1]=Pike_sp[0]; +  Pike_sp++; +  copy_svalues_recursively_no_free(Pike_sp-1,Pike_sp-2,1,0); +  free_svalue(Pike_sp-2); +  move_svalue (Pike_sp - 2, Pike_sp - 1); +  Pike_sp--;    dmalloc_touch_svalue(Pike_sp-1);   }