Wrong fix
doublex opened this issue · comments
doublex commented
Hello,
The commit "aa4e8b93558274a45387d215740a6bd4654148f4" has a bug.
If I upload a file, the code enters the first "if()", but not the second "if()", so
"up->rest" is zero, but "up->length" is not.
Therefore the module reports in the beginning 100% uploaded because
up->rest == 0.
Thanks a lot!
/* Properly handles small files where no read events happen after the */
/* request is first handled (apparently this can happen on linux with epoll) */
if (r->headers_in.content_length_n) {
up->length = r->headers_in.content_length_n;
if (r->request_body) {
up->rest = r->request_body->rest;
}
}
ChenyuanHu commented
I met the same problem.
and i fixed it as follows. it tested ok.
if (r->headers_in.content_length_n) {
up->length = r->headers_in.content_length_n;
if (r->request_body) {
up->rest = r->request_body->rest;
} else {
up->rest = up->length;
}
}
Brice Figureau commented
@ChenyuanHu or @doublex, would you open a Pull Request with the fix so that I can merge it ASAP?