Подробности
        
                          [В начало]
Проблема в реализации № L0022
Краткое описание
kernel/range.c: неправильная работа функции clean_sort_range() в случае полного массива
Подробное описание
Функция clean_sort_range() должна возвращать количество не пустых элементов массива. Однако, если массив полный, то функция clean_sort_range() возвращает ноль. Проблема заключается в том, что количество не пустых элементов вычисляется путем поиска первого пустого элемента. И, если таких элементов нет, то возвращается начальное значение переменной nr_range. Т.е. ноль.
Способы устранения
 kernel/range.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff -puN kernel/range.c~kernel-range-fix-clean_sort_range-for-the-case-of-full-array kernel/range.c
--- a/kernel/range.c~kernel-range-fix-clean_sort_range-for-the-case-of-full-array
+++ a/kernel/range.c
@@ -119,7 +119,7 @@ static int cmp_range(const void *x1, con
 
 int clean_sort_range(struct range *range, int az)
 {
-       int i, j, k = az - 1, nr_range = 0;
+       int i, j, k = az - 1, nr_range = az;
 
        for (i = 0; i < k; i++) {
                if (range[i].end)
_
                    Компонент
linux-kernel 2.6.32
Принято
https://lkml.org/lkml/2010/11/5/264
commit
Статус
Исправлено в kernel 2.6.37
[В начало]
»