pike.git / src / builtin_functions.c

version» Context lines:

pike.git/src/builtin_functions.c:1:   /*   || 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.564 2004/07/14 13:57:29 grubba Exp $ + || $Id: builtin_functions.c,v 1.565 2004/09/17 15:02:44 nilsson Exp $   */      #include "global.h" - RCSID("$Id: builtin_functions.c,v 1.564 2004/07/14 13:57:29 grubba Exp $"); + RCSID("$Id: builtin_functions.c,v 1.565 2004/09/17 15:02:44 nilsson Exp $");   #include "interpret.h"   #include "svalue.h"   #include "pike_macros.h"   #include "object.h"   #include "program.h"   #include "array.h"   #include "pike_error.h"   #include "constants.h"   #include "mapping.h"   #include "stralloc.h"
pike.git/src/builtin_functions.c:3074:    }       if( (from->type_field & ~BIT_STRING) &&    (array_fix_type_field(from) & ~BIT_STRING) )    Pike_error("replace: from array not array(string).\n");       if( (to->type_field & ~BIT_STRING) &&    (array_fix_type_field(to) & ~BIT_STRING) )    Pike_error("replace: to array not array(string).\n");    +  if( from->size > (INT32)(ULONG_MAX/sizeof(struct tupel)) ) +  Pike_error("Array too large.\n");    ctx.v=(struct tupel *)xalloc(sizeof(struct tupel)*from->size);    init_string_builder(&ctx.ret,str->size_shift);    SET_ONERROR (uwp, free_replace_many_context, &ctx);       for(num=e=0;e<from->size;e++)    {    if(ITEM(from)[e].u.string->size_shift > str->size_shift)    continue;       ctx.v[num].ind=ITEM(from)[e].u.string;