Bug in HTRequest_setOutputStream???

"Mark Boudreaux" <[email protected]>
Newsgroups gmane.comp.lib.libwww
Message-ID <[email protected]>
In the function HTRequest_setOutputStream...
 
/*
**      Output stream
*/
PUBLIC void HTRequest_setOutputStream (HTRequest * me, HTStream *output)
{
    if (me) {
        if (output) {
            me->output_stream = HTNoFreeStream_new(output);
            me->orig_output_stream = output;
        } else {
            me->output_stream = output;
        }
    }
}
 
 
Should the second line be changed from
            if (output) {
to
            if (!output) {
 
If the output pointer is not NULL the current design reallocate it.  If
it is NULL it will set me->output_stream to NULL.
 
With the current implementation, HTPostFormAnchorToChunk has a memory
leak...
/*
**      POST a URL and save the response in a mem buffer
**      ------------------------------------------------
**      Returns chunk if OK - else NULL
*/
PUBLIC HTChunk * HTPostFormAnchorToChunk (HTAssocList * formdata,
                                        HTAnchor *   anchor,
                                        HTRequest *  request)
{
    if (formdata && anchor && request) {
        HTChunk * chunk = NULL;
        HTStream * target = HTStreamToChunk(request, &chunk, 0);
        HTRequest_setOutputStream(request, target);
        if (HTPostFormAnchor(formdata, anchor, request) != NULL)
            return chunk;
        else {
            HTChunk_delete(chunk);
            return NULL;
        }
    }
    return NULL;
}
 
target is allocated memory by HTStreamToChunk but then it is allocated
memory a second time with HTRequest_setOutputStream.
 
I may be off base here but from the way I read the code
HTRequest_setOutputStream should be changed.
 
Feedback, corrections, comments?
 
Mark
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.