Boost logo

Boost :

From: x.lsi.maillard_at_[hidden]
Date: 2001-12-25 17:57:11


                THIS IS AN AUTOMATICALLY GENERATED REPLY
                   Your mail to me has been discarded

Hi! You have reached the mail filter of one Richard Gooch. I'm sorry
to have to do this to you, but I am now filtering my email to combat
the flood of junk email (spam) that I receive. I'm fed up with having
to waste my time sifting through junk email. This filter also protects
me from certain types of mailbombing attacks.

I received an email from you, but my mail filter doesn't think you
sent it to me personally. This may be because I am on some mailing
list I'm not aware of. It may also have come from a mailing list I
*am* subscribed to, but the list adminstrators have started fiddling
with (breaking) the listserver.
APOLOGIES if the mailing list is genuine (i.e. not a spam list). If
you receive this reply because of a message you sent to a genuine
mailing list, please send me a message (telling me which mailing list
I'm on) with the following in the subject line:

293977

This is my password of the week. My mail filter will then let me see
the message. NOTE: the password MUST be in the subject, not the body.
I will then add a rule for the mailing list (or unsubscribe myself if
I don't wish to be subscribed) so that this won't happen again. I
apologise to people subscribed to mailing lists if this message is
sent to the whole list; I have taken considerable care to make sure
that mailing lists I want to be subscribed to are not affected by my
spam filter.

NOTE TO BULK EMAIL ADVERTISERS, SPAMMERS AND OTHER PARASITES: if you
manage to break through my filtering, rest assured that I will ignore
your message on principle. Future mails will be automatically deleted.
Unsolicited commercial email is unwelcome and costs *me* time to deal
with.

The message you apparently sent to me follows:

>From fxgs Tue Dec 25 23:57:10 2001
Return-Path: <sentto-1234907-19313-1009219046-x.lsi.maillard=wanadoo.fr_at_[hidden]>
Delivered-To: fxgs_at_localhost.hometranet.home
Received: from 192.168.1.2 [192.168.1.2]
        by localhost with POP3 (fetchmail-5.9.0)
        for fxgs_at_localhost (single-drop); Tue, 25 Dec 2001 23:57:10 +0100 (CET)
Received: from localhost (localhost.localdomain [127.0.0.1])
        by mail.hometranet.home (Postfix) with ESMTP id 0A6992B075
        for <fxgs_at_localhost>; Tue, 25 Dec 2001 18:50:15 -0500 (EST)
Received: from pop.wanadoo.fr
        by localhost with POP3 (fetchmail-5.7.4)
        for fxgs_at_localhost (single-drop); Tue, 25 Dec 2001 18:50:15 -0500 (EST)
Received: from tamaris.wanadoo.fr (192.168.156.27) by ms4-2.wanadoo.fr; 24 Dec 2001 20:40:43 +0100
Received: from n10.groups.yahoo.com (216.115.96.60) by tamaris.wanadoo.fr; 24 Dec 2001 20:40:43 +0100
X-eGroups-Return: sentto-1234907-19313-1009219046-x.lsi.maillard=wanadoo.fr_at_[hidden]
Received: from [216.115.97.188] by n10.groups.yahoo.com with NNFMP; 24 Dec 2001 18:37:26 -0000
X-Sender: david.abrahams_at_[hidden]
X-Apparently-To: boost_at_[hidden]
Received: (EGP: mail-8_0_1_3); 24 Dec 2001 18:37:25 -0000
Received: (qmail 17165 invoked from network); 24 Dec 2001 18:37:24 -0000
Received: from unknown (216.115.97.172)
  by m2.grp.snv.yahoo.com with QMQP; 24 Dec 2001 18:37:24 -0000
Received: from unknown (HELO smtp-hub2.mrf.mail.rcn.net) (207.172.4.76)
  by mta2.grp.snv.yahoo.com with SMTP; 24 Dec 2001 18:37:24 -0000
Received: from smtp03.mrf.mail.rcn.net ([207.172.4.62])
        by smtp-hub2.mrf.mail.rcn.net with esmtp (Exim 3.33 #10)
        id 16IZyW-0002DY-00
        for boost_at_[hidden]; Mon, 24 Dec 2001 13:37:24 -0500
X-Info: This message was accepted for relay by
        smtp03.mrf.mail.rcn.net as the sender used SMTP authentication
X-Trace: UmFuZG9tSVYFdYTVDcgRdO9vSeGIewPijd36JBc2NFemOWbldMpY24Diq7Y2l2TDSoaZQEuqZCQ=
Received: from cable-163-77-237-24.anchorageak.net ([24.237.77.163] helo=morepie)
        by smtp03.mrf.mail.rcn.net with asmtp (Exim 3.33 #10)
        id 16IZyW-00027n-00
        for boost_at_[hidden]; Mon, 24 Dec 2001 13:37:24 -0500
Message-ID: <01bb01c18cab$62cd9120$6601a8c0_at_[hidden]>
To: <boost_at_[hidden]>
References: <200112241551.fBOFp9q21529_at_[hidden]>
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4133.2400
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400
From: "David Abrahams" <david.abrahams_at_[hidden]>
X-Yahoo-Profile: dave_abrahams
MIME-Version: 1.0
Mailing-List: list boost_at_[hidden]; contact boost-owner_at_[hidden]
Delivered-To: mailing list boost_at_[hidden]
Precedence: bulk
List-Unsubscribe: <mailto:boost-unsubscribe_at_[hidden]>
Date: Mon, 24 Dec 2001 13:46:01 -0500
Subject: Re: [boost] [Iterator Adaptors] Bug in filter_iterator_policies
Reply-To: boost_at_[hidden]
Content-Type: text/plain; charset=Windows-1252
Content-Transfer-Encoding: 7bit
Status: O

I'm a little nervous about this change: what if the one-past-the-end
iterator for a range fails to satisfy the predicate?

----- Original Message -----
From: "Douglas Gregor" <gregod_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Monday, December 24, 2001 10:52 AM
Subject: [boost] [Iterator Adaptors] Bug in filter_iterator_policies

> Hello,
> There's a bug in filter_iterator_policies, where the predicate may not
be
> satisfied for the underlying iterator under extreme circumstances. The
> problem is here:
>
> template <class IteratorAdaptor1, class IteratorAdaptor2>
> bool equal(const IteratorAdaptor1& x, const IteratorAdaptor2& y) const
> { return x.base() == y.base(); }
>
> Consider the following code, for "first" and "last" being iterators with a
> filter_iterator somewhere in them:
>
> while (first != last)
> *first++;
>
> Now make *first an operation that can modify the result of the predicate
on
> the next iterator in the sequence. Then we have:
>
> first++ advances the underlying iterator, then satisfies the predicate. A
> copy of the previous iterator is returned
>
> *first dereferences the previous iterator, possibly changing the result of
> the predicates in-between the old position and the new position.
>
> One simple fix is to instead use:
>
> template <class IteratorAdaptor1, class IteratorAdaptor2>
> bool equal(const IteratorAdaptor1& x, const IteratorAdaptor2& y) const
>

> satisfy_predicate(const_cast<Iterator&>(x.base()));
> satisfy_predicate(const_cast<Iterator&>(y.base()));
> return x.base() == y.base();
> }
>
> This fix will work well with one additional (reasonable) restriction on
the
> predicate: if the predicate ever returns false for an iterator, all
> successive predicate calls for that iterator must return false.
>
> Just to prove that I'm not crying wolf, go ahead and look at the
> deletion_test testcase in the "current" (November 25) Boost.Signals
library.
> I had precisely the same bug in the slot call iterator.
>
> I can check in the fix and documentation of the above limitation, or
provide
> a real patch.
>
> Doug
>
> Info: http://www.boost.org Send unsubscribe requests to:
<mailto:boost-unsubscribe_at_[hidden]>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
>

Info: http://www.boost.org Send unsubscribe requests to: <mailto:boost-unsubscribe_at_[hidden]>

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk