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:
		| @@ -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_QUOTE, config->quote); | ||||||
|         my_setopt(curl, CURLOPT_POSTQUOTE, config->postquote); |         my_setopt(curl, CURLOPT_POSTQUOTE, config->postquote); | ||||||
|         my_setopt(curl, CURLOPT_PREQUOTE, config->prequote); |         my_setopt(curl, CURLOPT_PREQUOTE, config->prequote); | ||||||
|         my_setopt(curl, CURLOPT_HEADERDATA, |  | ||||||
|                   config->headerfile?&heads:NULL); |  | ||||||
|         my_setopt_str(curl, CURLOPT_COOKIEFILE, config->cookiefile); |         my_setopt_str(curl, CURLOPT_COOKIEFILE, config->cookiefile); | ||||||
|         /* cookie jar was added in 7.9 */ |         /* cookie jar was added in 7.9 */ | ||||||
|         if(config->cookiejar) |         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_HEADERFUNCTION, header_callback); | ||||||
|           my_setopt(curl, CURLOPT_HEADERDATA, &outs); |           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) |         if(config->resolve) | ||||||
|           /* new in 7.21.3 */ |           /* new in 7.21.3 */ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Daniel Stenberg
					Daniel Stenberg