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 17 готовят умный режим ускоренной зарядки смартфона

В Android 17 разработчики готовят ещё одну небольшую, но вполне полезную функцию. В коде Android 17 Beta 3 нашли упоминания нового режима «Приоритетная зарядка» (Priority Charging), он должен помогать быстрее зарядить смартфон в те моменты, когда времени в обрез.

Судя по описанию, если включить этот режим, система временно поставит на паузу фоновую активность — например, обновления приложений и другие процессы, которые незаметно потребляют ресурсы устройства. За счёт этого больше энергии должно уходить непосредственно на зарядку аккумулятора.

При этом полностью «отключать жизнь» смартфона режим не собирается. Входящие звонки и СМС, как следует из найденных строк кода, всё равно будут приходить в обычном режиме.

Google также, судя по всему, рассчитывает, что функция будет работать в паре с адаптером мощностью от 30 Вт. То есть это не просто программный тумблер для галочки: компания явно хочет, чтобы Priority Charging использовался вместе с достаточно быстрым зарядным устройством.

Ещё один важный момент — контроль температуры. Быстрая зарядка почти всегда означает дополнительный нагрев, и в описании функции прямо говорится, что смартфон будет сам следить за температурой и удерживать аккумулятор в безопасных пределах. Google явно пытается сделать ставку на более умное распределение ресурсов и аккуратную работу с аккумулятором.

Пока Priority Charging в пользовательских настройках не видно. То есть функция, скорее всего, всё ещё находится в разработке или тестируется в фоновом режиме. Поэтому гарантии, что она доберётся до финальной версии Android 17, пока нет.

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