BUG/MINOR: vars: Be sure to have a session to get checks variables

It is now possible to get any variables from the cli. Concretely, only
variables in the PROC scope can be retrieved because there is neither stream
nor session defined. But, nothing forbids anyone to try to get a variable in
any scope. No value will be found, but it is allowed. Thus, we must be sure
to not rely on an undefined session or stream in that case. Especially, the
session must be tested before retrieving variables in CHECK scope.

This patch should fix the issue #1249. It must be backported to 2.4.
This commit is contained in:
Christopher Faulet 2021-06-02 11:48:42 +02:00
parent e9106d69cb
commit c4439f71b0

View File

@ -55,7 +55,7 @@ static inline struct vars *get_vars(struct session *sess, struct stream *strm, e
case SCOPE_SESS:
return sess ? &sess->vars : NULL;
case SCOPE_CHECK: {
struct check *check = objt_check(sess->origin);
struct check *check = sess ? objt_check(sess->origin) : NULL;
return check ? &check->vars : NULL;
}