main: fix segfault
Follow-up to commit 5eb2396cd
as that wasn't complete.
At times HEADERFUNCTION+HEADERDATA was set only to have only HEADERDATA
set in the subsequent loop which could cause a NULL to get sent as
userdata to 'header_callback' which wasn't made to handle that.
Now HEADERFUNCTION is explicitly set to NULL if it isn't set to the
callback.
This commit is contained in:
parent
838dd8f594
commit
61ae7e9ce7
@ -5415,8 +5415,6 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
|
||||
my_setopt(curl, CURLOPT_QUOTE, config->quote);
|
||||
my_setopt(curl, CURLOPT_POSTQUOTE, config->postquote);
|
||||
my_setopt(curl, CURLOPT_PREQUOTE, config->prequote);
|
||||
my_setopt(curl, CURLOPT_HEADERDATA,
|
||||
config->headerfile?&heads:NULL);
|
||||
my_setopt_str(curl, CURLOPT_COOKIEFILE, config->cookiefile);
|
||||
/* cookie jar was added in 7.9 */
|
||||
if(config->cookiejar)
|
||||
@ -5621,6 +5619,12 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
|
||||
my_setopt(curl, CURLOPT_HEADERFUNCTION, header_callback);
|
||||
my_setopt(curl, CURLOPT_HEADERDATA, &outs);
|
||||
}
|
||||
else {
|
||||
/* if HEADERFUNCTION was set to something in the previous loop, it
|
||||
is important that we set it (back) to NULL now */
|
||||
my_setopt(curl, CURLOPT_HEADERFUNCTION, NULL);
|
||||
my_setopt(curl, CURLOPT_HEADERDATA, config->headerfile?&heads:NULL);
|
||||
}
|
||||
|
||||
if(config->resolve)
|
||||
/* new in 7.21.3 */
|
||||
|
Loading…
Reference in New Issue
Block a user