BUG/MINOR: htx: make sure to always initialize the HTTP method when parsing a buffer

smp_prefetch_htx() is used when trying to access the contents of an HTTP
buffer from the TCP rulesets. The method was not properly set in this
case, which will cause the sample fetch methods relying on the method
to randomly fail in this case.

Thanks to Tim Dsterhus for reporting this issue (#97).

This fix must be backported to 1.9.
This commit is contained in:
Willy Tarreau 2019-05-13 08:32:31 +02:00
parent 04bcaa1f9f
commit ce9bbf523c

View File

@ -270,6 +270,7 @@ struct htx *smp_prefetch_htx(struct sample *smp, struct channel *chn, int vol)
sl = htx_add_stline(htx, HTX_BLK_REQ_SL, flags, h1sl.rq.m, h1sl.rq.u, h1sl.rq.v); sl = htx_add_stline(htx, HTX_BLK_REQ_SL, flags, h1sl.rq.m, h1sl.rq.u, h1sl.rq.v);
if (!sl || !htx_add_all_headers(htx, hdrs)) if (!sl || !htx_add_all_headers(htx, hdrs))
return NULL; return NULL;
sl->info.req.meth = h1sl.rq.meth;
} }
/* OK we just got a valid HTTP message. If not already done by /* OK we just got a valid HTTP message. If not already done by