mirror of
https://github.com/curl/curl.git
synced 2026-08-25 12:23:44 +03:00
formdata: ack read callback abort
When doing a multipart formpost with a read callback, and that callback returns CURL_READFUNC_ABORT, that return code must be properly propagated back and handled accordingly. Previously it would be handled as a zero byte read which would cause a hang! Added test case 587 to verify. It uses the lib554.c source code with a small ifdef. Reported by: Anton Bychkov Bug: http://curl.haxx.se/mail/lib-2011-10/0097.html
This commit is contained in:
parent
ff03ee2a3c
commit
840eff44f2
4 changed files with 75 additions and 9 deletions
|
|
@ -15,7 +15,7 @@ noinst_PROGRAMS = chkhostname \
|
|||
lib579 lib529 lib530 lib532 lib533 lib536 lib537 lib540 lib541 lib542 \
|
||||
lib543 lib544 lib545 lib547 lib548 lib549 lib552 lib553 lib554 lib555 \
|
||||
lib556 lib539 lib557 lib560 lib562 lib564 lib565 lib566 lib567 lib568 \
|
||||
lib569 lib570 lib571 lib572 lib573 lib582 lib583 lib585
|
||||
lib569 lib570 lib571 lib572 lib573 lib582 lib583 lib585 lib587
|
||||
|
||||
chkhostname_SOURCES = chkhostname.c $(top_srcdir)/lib/curl_gethostname.c
|
||||
chkhostname_LDADD = @CURL_NETWORK_LIBS@
|
||||
|
|
@ -166,3 +166,6 @@ lib583_SOURCES = lib583.c $(SUPPORTFILES)
|
|||
|
||||
lib585_SOURCES = lib500.c $(SUPPORTFILES)
|
||||
lib585_CPPFLAGS = $(AM_CPPFLAGS) -DLIB585
|
||||
|
||||
lib587_SOURCES = lib554.c $(SUPPORTFILES)
|
||||
lib587_CPPFLAGS = $(AM_CPPFLAGS) -DLIB587
|
||||
|
|
|
|||
|
|
@ -42,6 +42,14 @@ static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *userp)
|
|||
{
|
||||
struct WriteThis *pooh = (struct WriteThis *)userp;
|
||||
|
||||
#ifdef LIB587
|
||||
(void)ptr;
|
||||
(void)size;
|
||||
(void)nmemb;
|
||||
(void)userp;
|
||||
return CURL_READFUNC_ABORT;
|
||||
#else
|
||||
|
||||
if(size*nmemb < 1)
|
||||
return 0;
|
||||
|
||||
|
|
@ -53,6 +61,7 @@ static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *userp)
|
|||
}
|
||||
|
||||
return 0; /* no more data left to deliver */
|
||||
#endif
|
||||
}
|
||||
|
||||
int test(char *URL)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue