]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: vars: Be sure to have a session to get checks variables
authorChristopher Faulet <cfaulet@haproxy.com>
Wed, 2 Jun 2021 09:48:42 +0000 (11:48 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 2 Jun 2021 09:55:14 +0000 (11:55 +0200)
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.

src/vars.c

index 15dcb3c3d1d7d12a1de0dfeb549586dd06bdc5d6..5b35aa391b15d39a388185a004557ccb97153857 100644 (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;
                }