Return-Path: Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: (qmail 60162 invoked from network); 29 Oct 2006 14:33:43 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 29 Oct 2006 14:33:43 -0000 Received: (qmail 44134 invoked by uid 500); 29 Oct 2006 14:33:52 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 44073 invoked by uid 500); 29 Oct 2006 14:33:52 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 44062 invoked by uid 99); 29 Oct 2006 14:33:52 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 29 Oct 2006 06:33:52 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received: from [140.211.11.9] (HELO minotaur.apache.org) (140.211.11.9) by apache.org (qpsmtpd/0.29) with SMTP; Sun, 29 Oct 2006 06:33:40 -0800 Received: (qmail 60092 invoked by uid 2161); 29 Oct 2006 14:33:19 -0000 Received: from [192.168.2.4] (euler.heimnetz.de [192.168.2.4]) by cerberus.heimnetz.de (Postfix on SuSE Linux 7.0 (i386)) with ESMTP id 30D4A1721C for ; Sun, 29 Oct 2006 15:33:11 +0100 (CET) Message-ID: <4544BBA7.1090807@apache.org> Date: Sun, 29 Oct 2006 15:33:11 +0100 From: Ruediger Pluem User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.13) Gecko/20060417 X-Accept-Language: de, en, de-de, en-gb, cy, zu, xh MIME-Version: 1.0 To: dev@httpd.apache.org Subject: Re: [Fwd: Re: apr_brigade_create() produces a corrupt brigade] References: <45432AD1.5050300@apache.org> <4544A5A3.2030906@sharp.fm> In-Reply-To: <4544A5A3.2030906@sharp.fm> X-Enigmail-Version: 0.90.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Virus-Checked: Checked by ClamAV on apache.org On 10/29/2006 01:59 PM, Graham Leggett wrote: > Ruediger Pluem wrote: > >>> This runs fine - a brigade is created, containing a single bucket. >>> >>> The trouble is, the bucket inside the brigade is corrupt - it's name >>> consists of random bytes, and the pointers to its methods are either >> >> >> Maybe stupid thought, but isn't this bucket the sentinel and doesn't >> APR_BRIGADE_EMPTY return true on this brigade? > > > There definitely was one bucket in the new empty brigade, and it makes > sense that this bucket was the sentinel. What didn't make sense though > was that most of the fields in this bucket were uninitialised, so the > jump table for code that implements the various bucket methods consisted > of bogus addresses. Just two curious questions: 1. Did APR_BRIGADE_EMPTY return true on this newly created brigade? 2. Shouldn't the code take care never to process the sentinel because of the problems you pointed out above (invalid data, especially in the jump table)? Regards R�diger