Boost logo

Boost :

From: Caleb Epstein (caleb.epstein_at_[hidden])
Date: 2005-04-21 19:08:20


https://mndfck.org/svn/socketstream/trunk/example/time/session.h

Buffer overflow here:

                        char s[3];
                        this->time(s);

where ::time indexes s[0..3]. There's even a comment:

// assume we really got a string of the appropriate size

Overall this seems like a nice implementation of blocking,
iostream-able socket classes and related plumbing. I know different
folks are looking for different things in a network library. The
example programs are all well written (modulo that bug above) and
concise, which is a tribute to the your implementation. At the same
time, it is missing asynchronous and/or non-blocking operations and
any means for doing single-threaded I/O multiplexing (e.g.
select/poll/etc).

If non-blocking I/O were a possibility, I don't think throwing
exceptions on EWOUDBLOCK would be performant.

-- 
Caleb Epstein
caleb dot epstein at gmail dot com

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