Boost logo

Boost :

From: x.lsi.maillard_at_[hidden]
Date: 2001-12-25 17:56:38


                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:56:37 2001
Return-Path: <sentto-1234907-19308-1009209072-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:56:37 +0100 (CET)
Received: from localhost (localhost.localdomain [127.0.0.1])
        by mail.hometranet.home (Postfix) with ESMTP id 52E122B075
        for <fxgs_at_localhost>; Tue, 25 Dec 2001 18:50:06 -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:06 -0500 (EST)
Received: from tamaris.wanadoo.fr (192.168.156.27) by ms4-2.wanadoo.fr; 24 Dec 2001 17:18:29 +0100
Received: from n35.groups.yahoo.com (216.115.96.85) by tamaris.wanadoo.fr; 24 Dec 2001 17:18:20 +0100
X-eGroups-Return: sentto-1234907-19308-1009209072-x.lsi.maillard=wanadoo.fr_at_[hidden]
Received: from [216.115.97.189] by n35.groups.yahoo.com with NNFMP; 24 Dec 2001 15:51:12 -0000
X-Sender: gregod_at_[hidden]
X-Apparently-To: boost_at_[hidden]
Received: (EGP: mail-8_0_1_3); 24 Dec 2001 15:51:11 -0000
Received: (qmail 36120 invoked from network); 24 Dec 2001 15:51:11 -0000
Received: from unknown (216.115.97.171)
  by m3.grp.snv.yahoo.com with QMQP; 24 Dec 2001 15:51:11 -0000
Received: from unknown (HELO mailout5.nyroc.rr.com) (24.92.226.122)
  by mta3.grp.snv.yahoo.com with SMTP; 24 Dec 2001 15:51:11 -0000
Received: from there (alb-66-24-181-181.nycap.rr.com [66.24.181.181])
        by mailout5.nyroc.rr.com (8.11.6/Road Runner 1.12) with SMTP id fBOFp9q21529
        for <boost_at_[hidden]>; Mon, 24 Dec 2001 10:51:09 -0500 (EST)
Message-Id: <200112241551.fBOFp9q21529_at_[hidden]>
Organization: Rensselaer Polytechnic Institute
To: boost_at_[hidden]
X-Mailer: KMail [version 1.3.1]
From: Douglas Gregor <gregod_at_[hidden]>
X-Yahoo-Profile: crimsono
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 10:52:19 -0500
Subject: [boost] [Iterator Adaptors] Bug in filter_iterator_policies
Reply-To: boost_at_[hidden]
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Status: O

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/


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