--- lbbs/src/article_favor.c 2025/10/15 12:02:38 1.4 +++ lbbs/src/article_favor.c 2025/10/29 01:48:46 1.6 @@ -321,7 +321,7 @@ int article_favor_check(int32_t aid, con mid = (left + right) / 2; if (aid < (i == 0 ? p_favor->aid_base[mid] : p_favor->aid_inc[mid])) { - right = mid; + right = mid - 1; } else if (aid > (i == 0 ? p_favor->aid_base[mid] : p_favor->aid_inc[mid])) { @@ -372,7 +372,7 @@ int article_favor_set(int32_t aid, ARTIC mid = (left + right) / 2; if (aid < (i == 0 ? p_favor->aid_base[mid] : p_favor->aid_inc[mid])) { - right = mid; + right = mid - 1; } else if (aid > (i == 0 ? p_favor->aid_base[mid] : p_favor->aid_inc[mid])) { @@ -508,19 +508,9 @@ int query_favor_articles(ARTICLE_FAVOR * return -3; } - // acquire lock of section - if (section_list_rd_lock(p_section) < 0) + if (get_section_info(p_section, p_snames[i], NULL, NULL) < 0) { - log_error("section_list_rd_lock(sid = %d) error\n", p_section->sid); - return -4; - } - - memcpy(p_snames[i], p_section->sname, sizeof(p_snames[i])); - - // release lock of section - if (section_list_rd_unlock(p_section) < 0) - { - log_error("section_list_rd_unlock(sid = %d) error\n", p_section->sid); + log_error("get_section_info(sid=%d) error\n", p_section->sid); return -4; } }