mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 07:37:02 +02:00
BUG/MEDIUM: capture: capture-req/capture-res converters crash without a stream
Since commit 5f940703b3
("MINOR: log: Don't depends on a stream to process
samples in log-format string") it has become quite obvious that a few sample
fetch functions and converters were still heavily dependent on the presence
of a stream without testing for it.
The capture-req and capture-res converters were in this case and could
crash the process if misused.
This fix adds a check for the stream's existence, and should be backported
to all stable versions up to 1.6.
This commit is contained in:
parent
90702bc8f0
commit
5575896ba1
@ -276,7 +276,7 @@ static int sample_conv_url_dec(const struct arg *args, struct sample *smp, void
|
||||
|
||||
static int smp_conv_req_capture(const struct arg *args, struct sample *smp, void *private)
|
||||
{
|
||||
struct proxy *fe = strm_fe(smp->strm);
|
||||
struct proxy *fe;
|
||||
int idx, i;
|
||||
struct cap_hdr *hdr;
|
||||
int len;
|
||||
@ -284,6 +284,10 @@ static int smp_conv_req_capture(const struct arg *args, struct sample *smp, void
|
||||
if (!args || args->type != ARGT_SINT)
|
||||
return 0;
|
||||
|
||||
if (!smp->strm)
|
||||
return 0;
|
||||
|
||||
fe = strm_fe(smp->strm);
|
||||
idx = args->data.sint;
|
||||
|
||||
/* Check the availibity of the capture id. */
|
||||
@ -317,7 +321,7 @@ static int smp_conv_req_capture(const struct arg *args, struct sample *smp, void
|
||||
|
||||
static int smp_conv_res_capture(const struct arg *args, struct sample *smp, void *private)
|
||||
{
|
||||
struct proxy *fe = strm_fe(smp->strm);
|
||||
struct proxy *fe;
|
||||
int idx, i;
|
||||
struct cap_hdr *hdr;
|
||||
int len;
|
||||
@ -325,6 +329,10 @@ static int smp_conv_res_capture(const struct arg *args, struct sample *smp, void
|
||||
if (!args || args->type != ARGT_SINT)
|
||||
return 0;
|
||||
|
||||
if (!smp->strm)
|
||||
return 0;
|
||||
|
||||
fe = strm_fe(smp->strm);
|
||||
idx = args->data.sint;
|
||||
|
||||
/* Check the availibity of the capture id. */
|
||||
|
Loading…
Reference in New Issue
Block a user