Google помогла устранить более тысячи проблем в исходном коде проекта FFmpeg

Google помогла устранить множество проблем в исходном коде проекта FFmpeg

Корпорация Google поделилась деталями проекта, связанного с поиском и устранением ошибок в открытом мультимедиа пакете FFmpeg, который, как оказалось, активно используется внутри корпорации и в её продуктах, включая YouTube и Google Chrome.

В течение последних двух лет для процесса тестирования кодовой базы были задействованы 500 компьютерных ядер, а также исходный мультимедиа материал, собранный со всего интернета, включая файлы из самого проекта, находящиеся на сайте samples.mplayerhq.hu и собственный набор для тестирования регрессий проекта FFmpeg под названием FATE.

Тестирование заключалось в изменении исходных файлов и добавлении разнообразного случайного мусора с тем, чтобы выявить проблемы в функциях, занятых обработкой исходного материала для кодирования и декодирования - в компьютерной среде этот способ обыкновенно называется fuzzing. Другой способ тестирования - это прямой вызов функций библиотеки с не совсем корректными данными, чтобы проверить надёжность обработки подобной информации. Впоследствии, проект был расширен до 2000 ядер, а методы мутации исходных материалов были сделаны более разнообразными, пишет opennet.ru.

В ходе работы над проектом было выявлено более 1120 ошибок, которые уже устранены. Найденные ошибки можно разделить на следующие классы:

  • Разыменование NULL-указателей;
  • Неверные вычисления указателей, приводящие к SIGSEGV из-за использования "чужой" памяти;
  • Чтение и запись за пределы стека, кучи и массивов;
  • Неверные вызовы free(), а также двойное освобождение указателей;
  • Ошибки деления;
  • Ошибки assert();
  • Использование неинициализированной памяти.

Google таким же образом помогла форку FFmpeg, libav, в котором было устранено 413 ошибок.

В Android Canary у Linux Terminal появились новые настройки памяти и экрана

Google продолжает понемногу прокачивать встроенный Linux Terminal в Android. В свежей сборке Android Canary 2603 для него появилось сразу несколько изменений — и визуальных, и вполне практичных. Сам Терминал остаётся одной из самых любопытных функций на смартфонах Pixel.

Формально это штука скорее для энтузиастов, но по факту она уже давно вышла за рамки игрушки для гиков: через неё можно запускать Linux-приложения и даже игры. А на фоне планов Google расширять поддержку полноценных Linux-программ такие обновления выглядят вполне логично.

Снаружи Терминал немного освежили. Например, экран установки теперь выглядит современнее: прогресс-бар переместили в центр, а чек-бокс с ограничением по Wi-Fi заменили на переключатель. Плюс процесс установки теперь отображается более наглядно.

 

 

В самом интерфейсе командной строки изменения не такие заметные, но в графическом режиме есть небольшой, зато удобный сдвиг: кнопки клавиатуры и тачпада перенесли вверх, тогда как раньше они были внизу.

 

 

Главное новшество — это появление в настройках нового раздела «Advanced». В нём можно ограничить объём памяти, который Терминал отдаёт виртуальной среде, чтобы она не слишком активно съедала ресурсы смартфона. Там же появилась настройка времени активности экрана: можно выбрать, чтобы дисплей не гас от одной минуты до целых суток.

Последняя функция особенно полезна, если в Терминал крутится что-то долгое и не хочется, чтобы Android слишком рано отправил процесс в фон или просто прервал работу. Правда, система честно предупреждает: чем дольше экран остаётся включённым, тем быстрее будет таять заряд аккумулятора.

Пока эти изменения замечены именно в Android Canary. В Android 17 Beta 2 и Android 16 QPR3 их пока нет.

RSS: Новости на портале Anti-Malware.ru