summaryrefslogtreecommitdiff
path: root/modules/pam_group
diff options
context:
space:
mode:
authorTomas Mraz <tmraz@fedoraproject.org>2020-02-24 18:57:17 +0100
committerTomas Mraz <tmraz@fedoraproject.org>2020-02-24 18:57:17 +0100
commita33d198dd60d34422c706fd85d00b64d43402690 (patch)
tree8846f1f0b97da6635771ad55cfb7815208891b09 /modules/pam_group
parent28189d80695e320c4bf014232e279671182b502e (diff)
pam_group, pam_time: Fix logical error with multiple ! operators
* modules/pam_group/group.conf.5.xml: Document what logic list means. * modules/pam_time/time.conf.5.xml: Likewise. * modules/pam_group/pam_group.c (logic_field): Clear the not operator for the further operations. * modules/pam_time/pam_time.c (logic_field): Likewise.
Diffstat (limited to 'modules/pam_group')
-rw-r--r--modules/pam_group/group.conf.5.xml6
-rw-r--r--modules/pam_group/pam_group.c1
2 files changed, 7 insertions, 0 deletions
diff --git a/modules/pam_group/group.conf.5.xml b/modules/pam_group/group.conf.5.xml
index fc5370f5..5f3bb793 100644
--- a/modules/pam_group/group.conf.5.xml
+++ b/modules/pam_group/group.conf.5.xml
@@ -58,6 +58,12 @@
</para>
<para>
+ A logic list namely means individual tokens that are optionally prefixed
+ with '!' (logical not) and separated with '&' (logical and) and '|'
+ (logical or).
+ </para>
+
+ <para>
For these items the simple wildcard '*' may be used only once.
With UNIX groups or netgroups no wildcards or logic operators
are allowed.
diff --git a/modules/pam_group/pam_group.c b/modules/pam_group/pam_group.c
index 66252c78..2172a0b5 100644
--- a/modules/pam_group/pam_group.c
+++ b/modules/pam_group/pam_group.c
@@ -298,6 +298,7 @@ logic_field (const pam_handle_t *pamh, const void *me,
return FALSE;
}
next = VAL;
+ not = FALSE;
}
at += l;
}