Re: cURL bug -- Segmentation Fault when timeout is 1 second
Date: Wed, 4 Feb 2009 19:12:16 +0100
I will try to extend the writer-function, so that it extends the buffer.
But the website http://www.example.com/ is a text-only page. So it should
not be that my buffer has binary data at the beginning. And please look at
my code and output:
- The first call did output the website correctly
- The second call had binary garbage at the beginning
- The third call had other binary garbage at the beginning
And every call should be the same since the functionality is independent of
I never used strncpy() or any similar function in my codes. Maybe you have
looked at the wrong example code? I used the haxx.se example code of the
writer function that used std::string->append().
From: "Gary Maxwell" <gmaxwell_at_casabi.com>
Sent: Wednesday, February 04, 2009 7:01 PM
To: "libcurl development" <curl-library_at_cool.haxx.se>
Subject: RE: cURL bug -- Segmentation Fault when timeout is 1 second
> Daniel Marschall on February 04, 2009 9:49 AM wrote:
>> But there are 2 problems I still have:
>> 1. I want to have an infinite big buffer, like a std::string in C++.
>> website-output is larger than the buffer size, then I get a
>> memory-access-error again.
>> Isn't "char*" an infinite c-string that waits for an 0x0 termination
>> sequence, is it?
> "char*" is certainly NOT an infinite c-string. It is simply a pointer
> to an area of memory that contains sequential characters, the
> size of which you determine when you statically define or dynamically
> allocate the memory.
> You can easily expand the size of your buffer in the write callback
> function. Look at the documentation for realloc().
>> 2. The output of the buffer with printf() is not correct. Some foreign
>> memory contents are in my string... The output is like:
> Whoever said that the response from the server would be printable
> UTF-8 data? The server will send back whatever data it thinks you asked
> for, be it text, images, or sound bites. This is what particularly
> alarmed me in your earlier example code, using strncpy() in the write
> callback. You should instead use memcpy().
> -GaryM at casabi
Received on 2009-02-04