Проекты, в которых мы нашли ошибки с помощью PVS-Studio
- Операционные и встроенные системы
- Проекты Microsoft
- Браузеры
- Разработка игр
- Компиляторы
- Языки программирования
- Разработка
- Библиотеки
- Работа с графикой
- Работа со звуком
- Мессенджеры
- Разное
Мы ищем ошибки в коде Open Source проектов и пишем об этом статьи. Польза здесь в следующем:
- разработчикам проектов рассказываем о найденных проблемах. Если их исправить, можно сделать код лучше;
- читатели статей узнают, насколько качественное ПО они используют. Не будем забывать об образовательной составляющей. Когда знаешь, как ошибаются люди, самому ошибиться сложнее;
- мы же показываем возможности 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), третья проверка (май 2024)
Проекты Microsoft
- Проверка Garnet (май 2024)
- Проверка .NET 8 (декабрь 2023)
- Проверка Microsoft PowerToys (ноябрь 2023)
- Проверка Entity Framework Core (октябрь 2023)
- Проверка исходников .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)
Разработка игр
- Проверка Xenia (октябрь 2024)
- Проверка Unity 6 (октябрь 2024)
- Проверка Starlight (октябрь 2024)
- Проверка PPSSPP (октябрь 2024)
- Проверка WolvenKit (сентябрь 2024)
- Проверка Flax Engine (август 2024)
- Проверка qdEngine: часть 1 (апрель 2024), часть 2 (май 2024), часть 3 (май 2024), часть 4 (май 2024)
- Проверка Diablo 3 (апрель 2024)
- Проверка jMonkeyEngine (апрель 2024)
- Проверка TowerDefense (апрель 2024)
- Проверка Dagor Engine (январь 2024)
- Проверка GZDoom (декабрь 2023)
- Проверка San Andreas Unity (ноябрь 2023)
- Проверка SDL (ноябрь 2023)
- Проверка Quake World (сентябрь 2023)
- Проверка VCMI (июль 2023)
- Проверка Space Station 14 (июнь 2023)
- Проверка Thrive (июнь 2023)
- Проверка "Приключения капитала Блада" (февраль 2023)
- Проверка Stride (сентябрь 2022)
- Проверка Overgrowth (июнь 2022)
- Проверка GPCS4 (июнь 2022)
- Проверка Barotrauma (март 2022), вторая проверка (июнь 2023)
- Проверка Ogre3D (март 2022)
- Проверка MonoGame (февраль 2022)
- Проверка Carla (ноябрь 2021)
- Проверка DuckStation (ноябрь 2021)
- Проверка RPCS3 (ноябрь 2021)
- Проверка TheXTech (ноябрь 2021)
- Проверка Nintendo Switch (июнь 2021), вторая проверка (июль 2023)
- Проверка 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), третья проверка (август 2024)
- Проверка 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)
Компиляторы
- Проверка GCC 13 (сентябрь 2023)
- Проверка PeachPie (август 2021)
- Проверка LLVM (Clang) (август 2011), вторая проверка (август 2012), третья проверка (октябрь 2016), четвёртая проверка (апрель 2019), пятая проверка (октябрь 2020), шестая проверка (октябрь 2021), седьмая проверка (октябрь 2022), восьмая проверка (часть 1) (май 2024), восьмая проверка (часть 2) (июнь 2024), девятая проверка (ноябрь 2024)
- Проверка 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)
Разработка
- Проверка Apache NetBeans (апрель 2024)
- Проверка nopCommerce (март 2024)
- Проверка Qt Creator (февраль 2024)
- Проверка IntelliJ IDEA (декабрь 2023)
- Проверка CodeLite (август 2023)
- Проверка MassTransit (август 2023)
- Проверка 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)
Библиотеки
- Проверка DPDK (ноябрь 2024)
- Проверка 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)
- Проверка AWS SDK для .NET (январь 2019), вторая проверка (июль 2023)
- Проверка EFL Core Libraries (июль 2017)
- Проверка TensorFlow (апрель 2017)
- Проверка ADO.NET Entity Framework (март 2017)
- Проверка NUnit Framework (август 2016)
- Проверка Nana C++ Library (июль 2016)
- Проверка Accord.Net (июль 2016)
- Проверка Lucene.Net (март 2016)
- Проверка Amazon 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), третья проверка (март 2024)
- Проверка 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), вторая проверка (ноябрь 2024)
- Проверка Miranda NG: часть 1 (ноябрь 2014), часть 2 (ноябрь 2014)
- Проверка qutIM (ноябрь 2010)
Разное
- Проверка Kafka (октябрь 2024)
- Проверка GeoServer (сентябрь 2024)
- Проверка GeoGebra (август 2024)
- Проверка Apache Solr (июль 2024)
- Проверка Keycloak (июль 2024)
- Проверка x64dbg: первая часть (июль 2024), вторая часть (ноябрь 2024)
- Проверка OpenVINO: часть 1 (июнь 2024), часть 2 (июль 2024)
- Проверка DBeaver: часть 1 (июнь 2024), часть 2 (июнь 2024), часть 3 (июнь 2024)
- Проверка NGB (декабрь 2023)
- Проверка YTSaurus (октябрь 2023)
- Проверка 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)