--- lbbs/src/user_priv.c 2025/06/07 06:16:25 1.20 +++ lbbs/src/user_priv.c 2025/10/24 02:07:01 1.22 @@ -14,11 +14,11 @@ * * ***************************************************************************/ -#include "user_priv.h" #include "bbs.h" #include "common.h" #include "database.h" #include "log.h" +#include "user_priv.h" #include #include #include @@ -35,19 +35,24 @@ inline static int search_priv(BBS_user_p { mid = (left + right) / 2; - if (sid <= p_priv->s_priv_list[mid].sid) + if (sid < p_priv->s_priv_list[mid].sid) { - right = mid; + right = mid - 1; } - else + else if (sid > p_priv->s_priv_list[mid].sid) { left = mid + 1; } + else // if (sid == p_priv->s_priv_list[mid].sid) + { + left = mid; + break; + } } *p_offset = left; - return (left == right && sid == p_priv->s_priv_list[left].sid); + return (sid == p_priv->s_priv_list[left].sid); } int setpriv(BBS_user_priv *p_priv, int sid, int priv, int is_favor)