Hi. I have the following simple function.
/* * xml2_make_start_bucket */ apr_bucket *xml2_make_start_bucket(apr_bucket * b) { bucket_node *bn = b->data; apr_bucket *end; if (bn->node->type != XML_ELEMENT_NODE && !IS_DOCUMENT_NODE(bn->node)) { return NULL; } apr_bucket_copy(b, &end); bn->end = end; return end; } The bucket b is a shared bucket of a user defined type. All happens on linux x86_64. apr_bucket_copy is apr_bucket_shared_copy. After calling the function the subsequent assert fails. apr_bucket *end = xml2_make_start_bucket(b); ap_assert(end == bn->end); gdb shows me that the leading byte of end has been overwritten with 0. Any hints on what may be happening there? Thanks, Joachim