Проекты, в которых мы нашли ошибки с помощью PVS-Studio
- Операционные и встроенные системы
- Проекты Microsoft
- Браузеры
- Разработка игр
- Компиляторы
- Языки программирования
- Разработка
- Библиотеки
- Работа с графикой
- Работа со звуком
- Мессенджеры
- Разное
Мы ищем ошибки в коде Open Source проектов и пишем об этом статьи. Польза здесь в следующем:
- разработчикам проектов рассказываем о найденных проблемах. Если их исправить, можно сsделать код лучше;
- читатели статей узнают, насколько качественное ПО они используют. Не будем забывать об образовательной составляющей. Когда знаешь, как ошибаются люди, самому ошибиться сложнее;
- мы же показываем возможности PVS-Studio на практических примерах.
Найденные ошибки собираем в отдельный список. Из него можете узнать, в каких проектах встречались дефекты того или иного типа.
Хотите предложить проект для проверки? Просто отправьте pull request на GitHub.
Ниже перечислены проекты, которые мы уже проверили. Ссылки ведут на статьи, в которых подробно разбираются найденные проблемы.
Операционные и встроенные системы
- Проверка MuditaOS: часть 1 (февраль 2022), часть 2 (февраль 2022)
- Проверка Flipper Zero (декабрь 2021)
- Проверка Linux kernel (январь 2015), вторая проверка (декабрь 2016), третья проверка (август 2021)
- Проверка Apple XNU kernel (март 2018), вторая проверка (март 2021)
- Проверка Embox kernel (апрель 2020)
- Проверка Zephyr OS (апрель 2020)
- Проверка Amazon FreeRTOS (октябрь 2019)
- Проверка Haiku OS: часть 1, часть 2 (апрель 2015), вторая проверка: часть 1, часть 2, часть 3 (июль 2019)
- Проверка Mbed OS (октябрь 2018)
- Проверка Android (август 2018)
- Проверка RT-Thread IoT OS (март 2018)
- Проверка Tizen OS: часть 1, часть 2, часть 3 (июль 2017)
- Проверка FreeBSD (февраль 2016), вторая проверка (апрель 2017)
- Проверка ReactOS (сентябрь 2011), вторая проверка (апрель 2013)
Проекты Microsoft
- Проверка исходников .NET 7 (декабрь 2022)
- Проверка ML.NET (сентябрь 2022)
- Проверка MSBuild (август 2016), вторая проверка (сентябрь 2022)
- Проверка исходников .NET 6 (декабрь 2021)
- Проверка Open XML SDK (ноябрь 2020)
- Проверка SARIF SDK (декабрь 2019)
- Проверка Azure SDK for .NET (декабрь 2019)
- Проверка Azure PowerShell (октябрь 2019)
- Проверка Roslyn Analyzers (август 2019)
- Проверка .NET Core Libraries (CoreFX) (декабрь 2015), вторая проверка (август 2019)
- Проверка Windows Forms (август 2019)
- Проверка .NET Compiler Platform ("Roslyn") (декабрь 2015), вторая проверка (апрель 2019)
- Проверка калькулятора Windows (март 2019)
- Проверка Infer.NET (ноябрь 2018)
- Проверка Azure Service Fabric (апрель 2018)
- Не open-source, но всем на пользу. Проверка библиотек Visual C++ (сентябрь 2012), вторая проверка (октябрь 2014), третья проверка (май 2017)
- Проверка Microsoft PowerShell (ноябрь 2016)
- Проверка Microsoft Bot Builder SDK (октябрь 2016)
- Проверка Microsoft WPF Samples (июнь 2016)
- Проверка Casablanca (март 2013), вторая проверка (июнь 2016)
- Проверка Xamarin.Forms (май 2016)
- Проверка Microsoft Cognitive Toolkit (CNTK) (февраль 2016)
- Проверка ChakraCore (январь 2016)
- Проверка Microsoft Code Contracts (декабрь 2015)
- Проверка .NET Core Common Language Runtime (CoreCLR) (март 2015)
- Проверка Microsoft Word 1.1a (апрель 2014)
- Проверка Windows 8 Driver Samples (апрель 2013)
Браузеры
- Проверка Chromium (май 2011), вторая проверка (октябрь 2011), третья проверка (август 2013), четвертая проверка (декабрь 2013), пятая проверка (октябрь 2016), шестая проверка: введение, часть 1, часть 2, часть 3, часть 4, часть 5, часть 6, часть 7 (январь 2018), седьмая проверка (декабрь 2021)
- Проверка Firefox (декабрь 2011), вторая проверка (июнь 2014)
Разработка игр
- Проверка "Приключения капитала Блада" (февраль 2023)
- Проверка Stride (сентябрь 2022)
- Проверка Overgrowth (июнь 2022)
- Проверка GPCS4 (июнь 2022)
- Проверка Barotrauma (март 2022)
- Проверка Ogre3D (март 2022)
- Проверка MonoGame (февраль 2022)
- Проверка Carla (ноябрь 2021)
- Проверка DuckStation (ноябрь 2021)
- Проверка RPCS3 (ноябрь 2021)
- Проверка TheXTech (ноябрь 2021)
- Проверка Nintendo Switch (июнь 2021)
- Проверка Storm Engine (июнь 2021)
- Проверка Free Heroes of Might and Magic II (февраль 2021)
- Проверка Amnesia: The Dark Descent (октябрь 2020)
- Проверка XMage (август 2020)
- Проверка OpenRA (август 2020)
- Проверка Minetest (июль 2020)
- Проверка OpenRCT2 (июль 2020)
- Проверка Command & Conquer: часть 1, часть 2 (июль 2020)
- Проверка Newton Dynamics (июнь 2014), вторая проверка (апрель 2020)
- Проверка RunUO (февраль 2020)
- Проверка VVVVVV (январь 2020)
- Проверка osu! (январь 2020)
- Проверка Doom 1 (август 2019)
- Проверка PPSSPP (август 2019)
- Проверка Yuzu (август 2019)
- Проверка Bullet Physics SDK (июль 2019)
- Проверка EAStdC (июль 2019)
- Проверка Cataclysm: Dark Days Ahead (апрель 2019)
- Проверка Godot Engine (апрель 2015), вторая проверка (ноябрь 2018)
- Проверка 0 A.D. (август 2018)
- Проверка "Вангеры" (июль 2018)
- Проверка System Shock (июль 2018)
- Проверка Amazon Lumberyard (июль 2018)
- Проверка Unity (апрель 2018), вторая проверка (апрель 2022)
- Проверка Unreal Engine 4 (апрель 2014), вторая проверка (июнь 2015), третья проверка (июнь 2017)
- Проверка CryEngine V (август 2016), вторая проверка (апрель 2017)
- Проверка CMaNGOS (февраль 2017)
- Проверка компонентов Unity3D (август 2016)
- Проверка X-Ray Engine (июнь 2016)
- Проверка Serious Engine (март 2016)
- Проверка Xenko (март 2016)
- Проверка Space Engineers (февраль 2016)
- Проверка Spring RTS (декабрь 2014)
- Проверка Cocos2d-x (август 2014)
- Проверка OpenMW (май 2014)
- Проверка CryEngine 3 SDK (март 2014)
- Проверка Source SDK (январь 2014)
- Проверка Multi Theft Auto (август 2013)
- Проверка TrinityCore (февраль 2012)
- Проверка Quake III Arena GPL (февраль 2012)
- Проверка Doom 3 (ноябрь 2011)
Компиляторы
- Проверка PeachPie (август 2021)
- Проверка LLVM (Clang) (август 2011), вторая проверка (август 2012), третья проверка (октябрь 2016), четвёртая проверка (апрель 2019), пятая проверка (октябрь 2020), шестая проверка (октябрь 2021), седьмая проверка (октябрь 2022)
- Проверка GCC (август 2016), вторая проверка (апрель 2020)
- Проверка Huawei Ark Compiler (декабрь 2019)
- Проверка Mono (сентябрь 2016)
Языки программирования
- Проверка PascalABC.NET (март 2017), вторая проверка (январь 2022)
- Проверка Perl 5 (октябрь 2018)
- Проверка Scilab (март 2014), вторая проверка (июнь 2017)
- Проверка CPython и Ruby (июль 2016)
- Проверка PHP (сентябрь 2014), вторая проверка (апрель 2016)
- Проверка IronPython/IronRuby (январь 2016)
- Проверка Octave (август 2015)
Разработка
- Проверка Rhino (сентябрь 2022)
- Проверка AvalonStudio IDE (июль 2022)
- Проверка ILSpy (февраль 2021)
- Проверка CMake (август 2019)
- Проверка CruiseControl.NET (май 2017)
- Проверка Valgrind (май 2017)
- Проверка SharpDevelop (ноябрь 2015), вторая проверка (январь 2017)
- Проверка CodeLite (октябрь 2016)
- Проверка GitExtensions (октябрь 2016)
- Проверка GDB (сентябрь 2016)
- Проверка FlashDevelop (июль 2016)
- Проверка OpenJDK (июнь 2016)
- Проверка Dolphin Smalltalk 7 (январь 2016)
- Проверка MonoDevelop (декабрь 2015)
- Проверка Doxygen (август 2015)
- Проверка TortoiseGit (май 2014)
- Проверка TortoiseSVN (декабрь 2010), вторая проверка (июнь 2013)
Библиотеки
- Проверка MudBlazor (февраль 2023)
- Проверка Discord.NET (июль 2022)
- Проверка Orleans (июль 2022)
- Проверка Eto.Forms (март 2022)
- Проверка Blend2D (декабрь 2021)
- Проверка Protocol Buffers (ноябрь 2021)
- Проверка GTK 4 (февраль 2021)
- Проверка Qt (июль 2011), вторая проверка (апрель 2014), третья проверка (октябрь 2018), четвёртая проверка (февраль 2021)
- Проверка GTK+ (март 2016), вторая проверка (февраль 2021)
- Проверка ELKI (январь 2021)
- Проверка Espressif IoT Development Framework (январь 2021)
- Проверка Apache Flink (декабрь 2020)
- Проверка Bouncy Castle (ноябрь 2020)
- Проверка Awesome Hpp (октябрь 2020)
- Проверка PMDK (август 2020)
- Проверка ABBYY NeoML (июль 2020)
- Проверка Ghidra Framework (июнь 2020)
- Проверка TensorFlow.NET (апрель 2020)
- Проверка Avalonia UI (декабрь 2019)
- Проверка Huawei Cloud SDK (ноябрь 2019)
- Проверка OpenCvSharp (октябрь 2019)
- Проверка Telerik UI for UWP (октябрь 2019)
- Проверка CUBA Platform (апрель 2019)
- Проверка Amazon Web Services C# SDK (январь 2019)
- Проверка EFL Core Libraries (июль 2017)
- Проверка TensorFlow (апрель 2017)
- Проверка ADO.NET Entity Framework (март 2017)
- Проверка NUnit Framework (август 2016)
- Проверка Nana C++ Library (июль 2016)
- Проверка Accord.Net (июль 2016)
- Проверка Lucene.Net (март 2016)
- Проверка Amason Web Services SDK (март 2016)
- Проверка WPF примеров компании Infragistics (февраль 2016)
- Проверка Sony C#/.NET Components (январь 2016)
- Проверка MatrixSSL (февраль 2015)
- Проверка NSS (октябрь 2014)
- Проверка OpenSSL (декабрь 2012), вторая проверка (апрель 2014)
- Проверка glibc (февраль 2014)
- Проверка LibRaw (февраль 2014)
- Проверка Boost (август 2013)
- Не open-source, но всем на пользу. Проверка заголовочных файлов C++Builder (май 2013)
- Проверка OpenCV (март 2013)
- Проверка Intel IPP Samples (январь 2011), вторая проверка (октябрь 2011), третья проверка (апрель 2012)
- Проверка Intel Energy Checker SDK (июль 2011)
Работа с графикой
- Проверка OpenToonz (апрель 2016), вторая проверка (март 2020)
- Проверка LibrePCB (декабрь 2018)
- Проверка Krita (апрель 2018)
- Проверка проектов Disney (ноябрь 2016)
- Проверка Inkscape (август 2016)
- Проверка Blender (апрель 2012), вторая проверка (июль 2016)
- Проверка Appleseed (сентябрь 2015)
- Проверка FreeCAD (апрель 2015)
- Проверка Powder Toy (декабрь 2014)
- Проверка GIMP (август 2014)
- Проверка VirtualDub (октябрь 2013)
Работа со звуком
- Проверка MuseScore (сентябрь 2017), вторая проверка (март 2021)
- Проверка Steinberg SDKs (ноябрь 2017)
- Проверка Ardour (ноябрь 2017)
- Проверка Rosegarden (октябрь 2017)
- Проверка Audacity (октябрь 2017)
Мессенджеры
- Проверка ICQ (октябрь 2016)
- Проверка Miranda IM (март 2011), вторая проверка (май 2016)
- Проверка Telegram (сентябрь 2015)
- Проверка Miranda NG: часть 1 (ноябрь 2014), часть 2 (ноябрь 2014)
- Проверка qutIM (ноябрь 2010)
Разное
- Проверка BTCPay Server (май 2023)
- Проверка Bitwarden (май 2022)
- Проверка Umbraco (ноябрь 2015), вторая проверка (декабрь 2016), третья проверка (декабрь 2021)
- Проверка LINQ to DB (ноябрь 2021)
- Проверка CMS DotNetNuke (ноябрь 2021)
- Проверка BitTorrent (июль 2021)
- Проверка Snort (март 2021)
- Проверка STP (март 2021)
- Проверка COVID-19 CovidSim Model (февраль 2021)
- Проверка ONLYOFFICE Community Server (декабрь 2020)
- Проверка QuantConnect Lean (декабрь 2020)
- Проверка DeepSpeech (октябрь 2020)
- Проверка WildFly (октябрь 2020)
- Проверка QEMU (сентябрь 2020)
- Проверка RavenDB (июнь 2020), вторая проверка (мая 2023)
- Проверка Nethermind (май 2020)
- Проверка Chocolatey (февраль 2020)
- Проверка Emby Server (январь 2020)
- Проверка Apache Hadoop (декабрь 2019)
- Проверка ROOT (октябрь 2019)
- Проверка Orchard CMS (ноябрь 2016), вторая проверка (октябрь 2019), третья проверка (август 2022)
- Проверка Telegram Open Network (октябрь 2019)
- Проверка Celestia (октябрь 2019)
- Проверка Mozilla Thunderbird (сентябрь 2015), вторая проверка (сентябрь 2019)
- Проверка Apache Dubbo (август 2019)
- Проверка Apache Hive (август 2019)
- Проверка LXC (июнь 2019)
- Проверка Wireshark (июнь 2015), вторая проверка (апрель 2019)
- Проверка Elasticsearch (март 2019)
- Проверка SpeedCrunch (март 2019)
- Проверка FreeRDP (март 2019)
- Проверка Qalculate! (март 2019)
- Проверка FastReport (ноябрь 2018)
- Проверка NCBI Genome Workbench (ноябрь 2018)
- Проверка LibreOffice (март 2015), вторая проверка (октябрь 2018)
- Проверка Subtitle Edit (март 2018)
- Проверка ClickHouse (сентябрь 2017)
- Проверка Notepad++ (ноябрь 2010), вторая проверка (февраль 2012), третья проверка (июнь 2017)
- Проверка MediaPortal (март 2017)
- Проверка Far Manager for Linux (февраль 2017)
- Проверка Grub (сентябрь 2016)
- Проверка Apache HTTP Server (июль 2011), вторая проверка (сентябрь 2016)
- Проверка ReOpenLDAP (август 2016)
- Проверка NASA World Wind (август 2016)
- Проверка Geant4 (ноябрь 2013), вторая проверка (июль 2016)
- Проверка 7-Zip (июнь 2016)
- Проверка Firebird (февраль 2014), вторая проверка (май 2016)
- Проверка Samba (апрель 2016)
- Проверка плагина PVS-Studio (март 2016)
- Проверка Oracle VM VirtualBox: часть 1, часть 2 (сентябрь 2014), вторая проверка (март 2016)
- Проверка Wine (август 2014), вторая проверка (октябрь 2015)
- Проверка FreeSWITCH (октябрь 2015)
- Проверка Intel Galileo UEFI (май 2015)
- Проверка Vim (март 2015)
- Проверка KDE (сентябрь 2014)
- Проверка Asterisk (август 2014)
- Проверка Bitcoin (июль 2014)
- Проверка Tesseract (май 2014)
- Проверка WinSCP (апрель 2014)
- Проверка μManager (март 2014)
- Проверка PostgreSQL (декабрь 2013)
- Проверка OpenMS (сентябрь 2013)
- Проверка Trans-Proteomic Pipeline (август 2012), вторая проверка (сентябрь 2013)
- Проверка NetXMS (май 2013)
- Проверка Tor (ноябрь 2012)
- Проверка MAME (июль 2012)
- Проверка WinMerge (октябрь 2010), вторая проверка (март 2012)
- Проверка Dolphin-emu (февраль 2012)
- Проверка Ultimate Toolbox (декабрь 2010)
- Проверка Fennec Media Project (ноябрь 2010)