Wiki » History » Revision 7
Revision 6 (Alexey Khoroshilov, 02/22/2022 09:00 PM) → Revision 7/14 (Alexey Khoroshilov, 02/22/2022 09:32 PM)
{{toc}} h2. Статический анализ ядра Инструкции по работе с интерфейсом разметки (SVACER) доступны в разделе "файлы":https://forge.ispras.ru/projects/lvc/files. Для получения доступа к временному серверу для совместной работы над разметкой предупреждений SVACE пишите: khoroshilov@ispras.ru На этом сервере необходимо выбрать проект linux, ветка linux-5.10.y, в которой есть единственный снэпшот с результатами. Для того, чтобы отфильтровать те предупреждения, которые относятся к выбранным подсистемам в режиме Review необходимо нажать на кнопку Filters->Basic... и внизу в поле Files ввести список интересующих путей, например: <pre> security/selinux;net/ipv4 </pre> При этом надо убедиться, что кнопка .* рядом с Files нажата. По результатам анализа # Необходимо выставить вердикт: ** Confirmed -- ошибка, которую рекомендуется исправить ** Won't fix -- истинное срабатывание, которое по тем или иным причинам исправлять нецелесообразно ** False Positive - ложное срабатывание инструмента статического анализа ** Unclear - требуется дополнительный анализ # На вкладке Comment необходимо оставить комментарий, поясняющий вердикт. Сейчас это обязательно хотя бы в самом коротком виде, т.к. это единственный способ увидеть автора проведённого исследования предупреждения. h3. Типовые ситуации при разметке предупреждений в ядре h4. Защитное программирование Например, чекеры вида UNREACHABLE_CODE.ENUM сообщают о недостижимости кода в switch для ветки по умолчанию, в которой содержится та или иная отладочная печать, например: <pre><code class="c"> switch () { case ENUM1: ... default: dev_dbg(ice_pf_to_dev(pf), "Invalid container type %d\n", c_type); return -EINVAL; } </code></pre> Этот код, действительно, недостижим при нормальной работе ядра. Тем не менее, его как правило имеет смысл оставить, чтобы при возникновении нештатных ситуаций, управление пошло по более контролируемой логике и в журнале появилась информация об обнаружении нештатной ситуации. В этом случае рекомендуется выставить вердикт @Won't fix@ и написать комментарий @Защитное программирование@. h2. Взаимодействие с международным сообществом Для отправки патчей в основную ветку ядра следуйте следующим инструкциям: [[How_to_send_patches_to_kernel|Отправка патчей в ядро]].