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 ошибок.

Подпишитесь на новости

Производители ТВ признали, что полностью отключить сбор данных нельзя

Издание The Verge задало производителям телевизоров и ТВ-приставок 17 вопросов о том, какие данные они собирают о пользователях. Из 11 компаний ответили семь: Amazon, Apple, Google, LG, Roku, Samsung и TCL. Panasonic, Sony и Vizio отвечать не стали, с Hisense связаться не удалось. Apple ответила лишь на часть вопросов.

Ответы компаний опубликовала The Verge. Главной темой стало автоматическое распознавание контента (ACR).

Эта технология определяет, что смотрит человек, и используется в том числе для показа рекламы и подсчета аудитории. У Samsung, LG и Amazon ACR по умолчанию выключен.

Samsung утверждает, что после отключения функции удаляет собранные данные со своих серверов. LG распознает контент по звуковым отпечаткам, а при включенном ACR определяет местоположение по соседним сетям Wi-Fi. Расшифровки голосовых команд у LG могут храниться без шифрования.

Google при стандартной настройке сразу включает сбор диагностики, персональные рекомендации и рекламу. Google TV передает компании IP-адрес и данные о соседних сетях Wi-Fi, по которым можно определить местоположение. Apple заявила, что Apple TV 4K не использует ACR и не делает снимков экрана.

Amazon, Google, Samsung и Roku признали, что полностью отказаться от передачи данных нельзя. Если телевизор отключен от интернета, устройства Amazon, Google, Roku, Samsung и TCL сохраняют часть данных и отправляют их после подключения.

Исследование Северо-Восточного университета показало, что телевизоры Vizio продолжали отправлять данные и после отказа пользователя от сбора. В компании назвали это служебными данными. У Samsung и Roku поток данных после отказа сократился, но полностью не прекратился.

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