The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Из ядра Linux будет удалён драйвер файловой системы ext3"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Для контроля за появлением новых сообщений - перед выходом жмите "Пометить прочитанным".
. "Из ядра Linux будет удалён драйвер файловой системы ext3" +/
Сообщение от Аноним (-), 17-Июл-15, 00:04 
> Прикольная логика. Всерьез предлагается парсить мусор?

        read_blk(dquot->dq_h, blk, buf);
        if (depth == QT_TREEDEPTH - 1) {
                for (i = 0; i < QT_BLKSIZE >> 2; i++) {
                        blk = ext2fs_le32_to_cpu(ref[i]);
                        check_reference(dquot->dq_h, blk);
                        if (blk && !get_bit(bitmap, blk))
                                entries += report_block(dquot, blk, bitmap,
                                                        process_dquot, data);
                }

...

static void read_blk(struct quota_handle *h, unsigned int blk, dqbuf_t buf)
{
        int err;

        err = h->e2fs_read(&h->qh_qf, blk << QT_BLKSIZE_BITS, buf,
                        QT_BLKSIZE);
        if (err < 0)
                log_err("Cannot read block %u: %s", blk, strerror(errno));
        else if (err != QT_BLKSIZE)
                memset(buf + err, 0, QT_BLKSIZE - err);
}

как легко заметить read_blk может таки иметь ошибку (log_err только ругнется в консоль или syslog).
но это не мешает продолжать парсить прочитаное. Тоже самое относится к check_reference - которое проверяет индекс блока на валидность.. куда-то репортим об этом. реакции 0.

Вопрос - кем должен быть человек пропустивший такой код?
пример падения

e2fsck -f /dev/md0

Pass 5: Checking group summary information

[ERROR] quotaio_tree.c:590:check_reference:: Illegal reference (2711113728 >= 17) in user quota file. Quota file is probably corrupted.
Please run e2fsck (8) to fix it.
Signal (11) SIGSEGV si_code=SEGV_MAPERR fault addr=0x149e4110
e2fsck[0x42d26e]
/lib64/libc.so.6(+0x326b0)[0x7f98710816b0]
e2fsck[0x4303c8]
e2fsck[0x4302fd]
e2fsck[0x4302fd]
e2fsck[0x4302fd]
e2fsck(qtree_scan_dquots+0x7a)[0x43065a]
e2fsck(quota_compare_and_update+0xb2)[0x42dc92]
e2fsck(main+0x2279)[0x40db59]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x7f987106dd5d]
e2fsck[0x409c09]

все.. приплыли - больше вы починить ext4 не можете.

Правда умный человек пропустил такой код?

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Из ядра Linux будет удалён драйвер файловой системы ext3, opennews, 15-Июл-15, 22:13  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру