From fc1775c837b28fe23df1f09be0d7ea7152351923 Mon Sep 17 00:00:00 2001 From: Fredrik Thulin Date: Sun, 26 Dec 2010 22:21:58 +0100 Subject: [PATCH] ykp_write_config: Only output flags if all bits match. Do not output a false positive for a config/ticket flag if only some bits match. Without this patch, a configuration with the single cfgflag STRONG_PW2 was shown as STRONG_PW2|OATH_FIXED_MODHEX2|OATH_FIXED_MODHEX since there are some bits matching STRONG_PW2 (0x40) in OATH_FIXED_MODHEX (0x50). With this patch, single cfgflag STRONG_PW2 is shown as STRONG_PW2|OATH_FIXED_MODHEX2 OATH_FIXED_MODHEX2 is also shown as it shares the value of 0x40, and the outputting is not context aware (yet). --- ykpers.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ykpers.c b/ykpers.c index 5dbc693..ae3922f 100644 --- a/ykpers.c +++ b/ykpers.c @@ -427,7 +427,7 @@ int ykp_write_config(const YKP_CONFIG *cfg, buffer[0] = '\0'; for (p = ticket_flags_map; p->flag; p++) { - if (cfg->ykcore_config.tktFlags & p->flag + if ((cfg->ykcore_config.tktFlags & p->flag) == p->flag && p->vcheck(cfg)) { if (*buffer) { strcat(buffer, str_flags_separator); @@ -446,7 +446,7 @@ int ykp_write_config(const YKP_CONFIG *cfg, buffer[0] = '\0'; for (p = config_flags_map; p->flag; p++) { - if (cfg->ykcore_config.cfgFlags & p->flag + if ((cfg->ykcore_config.cfgFlags & p->flag) == p->flag && p->vcheck(cfg)) { if (*buffer) { strcat(buffer, str_flags_separator); -- 2.39.5