httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dgau...@hyperreal.org
Subject cvs commit: apachen/src/main alloc.c
Date Tue, 27 Jan 1998 02:37:53 GMT
dgaudet     98/01/26 18:37:52

  Modified:    src/main alloc.c
  Log:
  more pool debugging -- copy_table() and overlay_tables() have implicit
  assumptions about the pool relationships of their arguments.   There
  are actually some bugs in the core code I'll fix in a few minutes.
  
  Revision  Changes    Path
  1.70      +24 -0     apachen/src/main/alloc.c
  
  Index: alloc.c
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/main/alloc.c,v
  retrieving revision 1.69
  retrieving revision 1.70
  diff -u -r1.69 -r1.70
  --- alloc.c	1998/01/26 19:50:10	1.69
  +++ alloc.c	1998/01/27 02:37:51	1.70
  @@ -873,6 +873,15 @@
   {
       table *new = palloc(p, sizeof(table));
   
  +#ifdef POOL_DEBUG
  +    /* we don't copy keys and values, so it's necessary that t->a.pool
  +     * have a life span at least as long as p
  +     */
  +    if (!pool_is_ancestor(t->a.pool, p)) {
  +	fprintf(stderr, "copy_table: t's pool is not an ancestor of p\n");
  +	abort();
  +    }
  +#endif
       make_array_core(&new->a, p, t->a.nalloc, sizeof(table_entry));
       memcpy(new->a.elts, t->a.elts, t->a.nelts * sizeof(table_entry));
       new->a.nelts = t->a.nelts;
  @@ -1083,6 +1092,21 @@
   API_EXPORT(table *) overlay_tables(pool *p, const table *overlay, const table *base)
   {
       table *res;
  +
  +#ifdef POOL_DEBUG
  +    /* we don't copy keys and values, so it's necessary that
  +     * overlay->a.pool and base->a.pool have a life span at least
  +     * as long as p
  +     */
  +    if (!pool_is_ancestor(overlay->a.pool, p)) {
  +	fprintf(stderr, "overlay_tables: overlay's pool is not an ancestor of p\n");
  +	abort();
  +    }
  +    if (!pool_is_ancestor(base->a.pool, p)) {
  +	fprintf(stderr, "overlay_tables: base's pool is not an ancestor of p\n");
  +	abort();
  +    }
  +#endif
   
       res = palloc(p, sizeof(table));
       /* behave like append_arrays */
  
  
  

Mime
View raw message