В ядре Linux устранена следующая уязвимость:
riscv:cacheinfo: исправлена утечка ссылок на узлы в populate_cache_leaves. В настоящее время цикл while удаляет ссылку на prev на каждой итерации. Если цикл завершается досрочно из-за прерывания, финал of_node_put(np)
правильно удаляет ссылку на текущий узел.
Однако, если цикл завершается естественным образом, поскольку np == NULL, вызов
of_node_put(np) не работает. Это оставляет последний действительный узел, хранящийся в
prev без удаления ссылки, что приводит к утечке ссылок на узлы. Исправьте это, изменив окончательный `of_node_put(np)` на `of_node_put(prev)`.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: riscv: cacheinfo: Fix node reference leak in populate_cache_leaves Currently, the while loop drops the reference to prev in each iteration. If the loop terminates early due to a break, the final of_node_put(np) correctly drops the reference to the current node. However, if the loop terminates naturally because np == NULL, calling of_node_put(np) is a no-op. This leaves the last valid node stored in prev without its reference dropped, resulting in a node reference leak. Fix this by changing the final `of_node_put(np)` to `of_node_put(prev)`.