Commit 421fae06 authored by Vesa-Matti Kari's avatar Vesa-Matti Kari Committed by James Morris

selinux: conditional expression type validation was off-by-one

expr_isvalid() in conditional.c was off-by-one and allowed
invalid expression type COND_LAST. However, it is this header file
that needs to be fixed. That way the if-statement's disjunction's
second component reads more naturally, "if expr type is greater than
the last allowed value" ( rather than using ">=" in conditional.c):

  if (expr->expr_type <= 0 || expr->expr_type > COND_LAST)
Signed-off-by: default avatarVesa-Matti Kari <vmkari@cc.helsinki.fi>
Signed-off-by: default avatarJames Morris <jmorris@namei.org>
parent 15446235
...@@ -28,7 +28,7 @@ struct cond_expr { ...@@ -28,7 +28,7 @@ struct cond_expr {
#define COND_XOR 5 /* bool ^ bool */ #define COND_XOR 5 /* bool ^ bool */
#define COND_EQ 6 /* bool == bool */ #define COND_EQ 6 /* bool == bool */
#define COND_NEQ 7 /* bool != bool */ #define COND_NEQ 7 /* bool != bool */
#define COND_LAST 8 #define COND_LAST COND_NEQ
__u32 expr_type; __u32 expr_type;
__u32 bool; __u32 bool;
struct cond_expr *next; struct cond_expr *next;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment