Boost logo

Boost Users :

Subject: Re: [Boost-users] Boost.Beast includes CRLF in HTTP fields
From: Daniel Anderson (wonixen_at_[hidden])
Date: 2018-07-07 17:48:39


Le sam. 7 juil. 2018 à 11:34, David Demelier via Boost-users <
boost-users_at_[hidden]> a écrit :

> On Sat, 2018-07-07 at 08:20 -0700, Vinnie Falco via Boost-users wrote:
> > On Sat, Jul 7, 2018 at 8:11 AM, David Demelier via Boost-users
> > <boost-users_at_[hidden]> wrote:
> > > The res_ object is a http::response<http::string_body>, And once
> > > printed to the console I have:
> > >
> > > new location: [http://www.google.fr/
> > > ]
> >
> > Hmm...that's not what I'm seeing. I added this function to
> > test/beast/http/fields.cpp:
> >
> > void
> > testValue()
> > {
> > request<empty_body> req;
> > req.insert(field::location, "http://www.google.fr/");
> > auto it = req.find(field::location);
> > if(it != req.end())
> > log << "[" << it->value() << "]";
> > }
> >
> > The output is:
> >
> > beast.http.fields
> > [http://www.google.fr/]25.6s, 1 suite, 1 case, 334 tests total, 0
> > failures
> > The program '[0x6BF4] tests-beast-http.exe' has exited with code
> > 0 (0x0).
> >
> > If the CRLF was being included in the value, then none of these tests
> > would pass, as the equalities would evaluate to false:
>
> My bad, I apologize I wrongly converted the boost::string_view to
> std::string using the .data() member function and I just realized it's
> not null terminated... That's why my string was filled with random
> characters.
>

Why do you use data() without using size()/length() ?

with string_view this is a recipe for hard to find bugs.

At my job I've seen same behavior, and I am trying to explain to people
that data() in std::string & std::string_view is mostly for C interfaces.

> Sorry for the noise!
>
> I should search how people convert boost::string_view to std::string in
> a convenient manner instead ;)
>
> Regards,
>
> --
> David
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> https://lists.boost.org/mailman/listinfo.cgi/boost-users
>

-- 
Daniel
«Il faut imaginer Sisyphe heureux»
 Albert Camus


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net