Branch: Tag:

2002-10-14

2002-10-14 13:03:27 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Improved robustness of Roxen.HeaderParser().

Rev: src/modules/_Roxen/roxen.c:1.30

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: roxen.c,v 1.29 2002/10/11 01:39:54 nilsson Exp $ + || $Id: roxen.c,v 1.30 2002/10/14 13:03:27 grubba Exp $   */      #define NO_PIKE_SHORTHAND
55:    int slash_n, spc;   };    + static void f_hp_init( struct object *o ) + { +  THP->headers = NULL; +  THP->pnt = NULL; +  THP->hsize = 0; + } +    static void f_hp_exit( struct object *o )   {    if( THP->headers )    free( THP->headers ); -  +  THP->headers = NULL; +  THP->pnt = NULL; +  THP->hsize = 0;   }      static void f_hp_feed( INT32 args )
217:   /*! @decl void create(void)    */   { -  THP->headers = malloc( 8192 ); +  if (THP->headers) { +  free(THP->headers); +  THP->headers = NULL; +  } +  THP->headers = xalloc( 8192 );    THP->pnt = THP->headers;    THP->hsize = 8192;    THP->left = 8192;
480:       start_new_program();    ADD_STORAGE( struct header_buf ); +  set_exit_callback( f_hp_init );    set_exit_callback( f_hp_exit );    pike_add_function( "feed", f_hp_feed, "function(string:array(string|mapping))",0 );    pike_add_function( "create", f_hp_create, "function(:void)", ID_STATIC );