SlideShare una empresa de Scribd logo
1 de 21
Вы еще просто тестируете?							Тогда мы едем к вам! Использование статического анализа при тестировании програмных продуктов Новосибирск, 19 марта 2011. Дмитрий Петунин
Статический анализ и безопасность. Что делать, если ваш диагноз ложно-позитивный? Я, ты, он, она ... Кто? Этот безопасный мир безопасного ПО. Темы для размышления
Анализ корректности работы программы без ее исполнения Для любых значений переменных Для произвольных входных данных Анализируются все возможные пути исполнения Статический анализ Статический анализ  наиболее подходящая технология  для анализа безопасности программ
Классика жанра 	if ( !var ) { 			error(“Invalid variable”, var->name); 	}
Ба! Знакомые все лица! ,[object Object]
Неинициализированные переменные
Некорректная работа с указателями
Ошибки работы с динамической памятью
Ошибки работы со строками
Использование пользовательских данных без верификации
Ошибки форматов
Противоречивые объявления
Недостижимый код
Деление на 0
Неэффективное/опасное использование С++
Ошибки распараллеливния
Некорректное использование API,[object Object]
Меньше знаешь – крепче спишь? Мощность анализа Минимум ложной диагностики  Скорость работы Каждый статический анализатор находит свой оптимум из трех параметров
Зависимости между значениями Источники ложнопозитивных сообщений Несуществующие пути исполнения int flag; void doo(int *var) {     if (flag == 1)        *var = 1; } void foo() { intvar;    doo(&var);    if (flag == 1) printf("%d", var); } Неинициализированное значение var double foo(int x, int y) {     return 1 / (x - y); } int main() { printf("%f", foo(6, 3)); printf("%f", foo(3, 0));     return 0; } Возможное деление на 0 double foo(int x, int y) {     return 1 / (x - y); } int main() { printf("%f", foo(6, 3)); printf("%f", foo(3, 0));     return 0; } Возможное деление на 0
Эффективность QAпроцессов во времени Запуск  процесса Эффективность статического анализа и  regression тестирования не снижаются со временем
Уровни использования статического анализа Меньше 5% времени разработчика Идентификация грубых ошибок Максимальное понимание проблем Разработчик Экономия на количестве запусков Идентификация проблем дизайна Баланс тестирование /cтат. анализ  Компонента Существенные ресурсы QA на анализ Повышенные расходы на коммуникацию Mainline Финальная валидация продукта Большие расходы на коммуникацию Нет выявления потенциальных проблем Продукт Эффективность анализа диагностики и процессные расходы  возрастают, потребность в HW ресурсах уменьшается

Más contenido relacionado

Destacado

Myers Dill and Sam Digirolamo Presentation
Myers Dill and Sam Digirolamo PresentationMyers Dill and Sam Digirolamo Presentation
Myers Dill and Sam Digirolamo PresentationBronwen Elizabeth Madden
 
So What is This Thing Called WordPress?
So What is This Thing Called WordPress?So What is This Thing Called WordPress?
So What is This Thing Called WordPress?Graham Armfield
 
So How Do I Know if My Website is Accessible?
So How Do I Know if My Website is Accessible?So How Do I Know if My Website is Accessible?
So How Do I Know if My Website is Accessible?Graham Armfield
 
Us trade policy agenda in 2016 wenk- joplin mo - may 16 2016
Us trade policy agenda in 2016  wenk- joplin mo - may 16 2016Us trade policy agenda in 2016  wenk- joplin mo - may 16 2016
Us trade policy agenda in 2016 wenk- joplin mo - may 16 2016Bronwen Elizabeth Madden
 
Benefits of product labeling packaging mo grown
Benefits of product labeling  packaging   mo grownBenefits of product labeling  packaging   mo grown
Benefits of product labeling packaging mo grownBronwen Elizabeth Madden
 

Destacado (6)

Myers Dill and Sam Digirolamo Presentation
Myers Dill and Sam Digirolamo PresentationMyers Dill and Sam Digirolamo Presentation
Myers Dill and Sam Digirolamo Presentation
 
So What is This Thing Called WordPress?
So What is This Thing Called WordPress?So What is This Thing Called WordPress?
So What is This Thing Called WordPress?
 
So How Do I Know if My Website is Accessible?
So How Do I Know if My Website is Accessible?So How Do I Know if My Website is Accessible?
So How Do I Know if My Website is Accessible?
 
Us trade policy agenda in 2016 wenk- joplin mo - may 16 2016
Us trade policy agenda in 2016  wenk- joplin mo - may 16 2016Us trade policy agenda in 2016  wenk- joplin mo - may 16 2016
Us trade policy agenda in 2016 wenk- joplin mo - may 16 2016
 
Missouri Manufacturing 2016
Missouri Manufacturing 2016Missouri Manufacturing 2016
Missouri Manufacturing 2016
 
Benefits of product labeling packaging mo grown
Benefits of product labeling  packaging   mo grownBenefits of product labeling  packaging   mo grown
Benefits of product labeling packaging mo grown
 

Similar a CodeFest 2011. Петунин Д. — Использование инструментов статического анализа при отладке и верификации безопасности ПО

Философия Application Security
Философия Application SecurityФилософия Application Security
Философия Application SecurityVladimir Kochetkov
 
Анализ ИБ и расследование инцидентов ИБ (учебный семинар)
Анализ ИБ и расследование инцидентов ИБ (учебный семинар)Анализ ИБ и расследование инцидентов ИБ (учебный семинар)
Анализ ИБ и расследование инцидентов ИБ (учебный семинар)Alexey Kachalin
 
Система управления учетными записями (IDM). Информационная безопасность.
Система управления учетными записями (IDM). Информационная безопасность. Система управления учетными записями (IDM). Информационная безопасность.
Система управления учетными записями (IDM). Информационная безопасность. Softline
 
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...Yandex
 
Руслан Стефанов. Нужны ли модели АСУ ТП при обеспечении информационной безопа...
Руслан Стефанов. Нужны ли модели АСУ ТП при обеспечении информационной безопа...Руслан Стефанов. Нужны ли модели АСУ ТП при обеспечении информационной безопа...
Руслан Стефанов. Нужны ли модели АСУ ТП при обеспечении информационной безопа...Positive Hack Days
 
нужны ли стенды асутп для иб (Phd 2013) 1305 22 final
нужны ли стенды асутп для иб (Phd 2013) 1305 22 finalнужны ли стенды асутп для иб (Phd 2013) 1305 22 final
нужны ли стенды асутп для иб (Phd 2013) 1305 22 finalPositive Hack Days
 
C++ CoreHard Autumn 2018. Информационная безопасность и разработка ПО - Евген...
C++ CoreHard Autumn 2018. Информационная безопасность и разработка ПО - Евген...C++ CoreHard Autumn 2018. Информационная безопасность и разработка ПО - Евген...
C++ CoreHard Autumn 2018. Информационная безопасность и разработка ПО - Евген...corehard_by
 
О ядре SOC - SOC-Forum Astana 2017
О ядре SOC - SOC-Forum Astana 2017О ядре SOC - SOC-Forum Astana 2017
О ядре SOC - SOC-Forum Astana 2017Alexey Kachalin
 
Статический анализ Си++ кода
Статический анализ Си++ кодаСтатический анализ Си++ кода
Статический анализ Си++ кодаTatyanazaxarova
 
ADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кодаADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кодаAndrey Karpov
 
Positive Technologies. Григорий Тимофеев. "Позитивные технологии обеспечения ИБ"
Positive Technologies. Григорий Тимофеев. "Позитивные технологии обеспечения ИБ"Positive Technologies. Григорий Тимофеев. "Позитивные технологии обеспечения ИБ"
Positive Technologies. Григорий Тимофеев. "Позитивные технологии обеспечения ИБ"Expolink
 
Решения HP для обеспечения информационной безопасности
Решения HP для обеспечения информационной безопасностиРешения HP для обеспечения информационной безопасности
Решения HP для обеспечения информационной безопасностиКРОК
 
Обзор платформы B4
Обзор платформы B4Обзор платформы B4
Обзор платформы B4Bars Group
 
Security Testing - Polazhenko Sergey
Security Testing - Polazhenko SergeySecurity Testing - Polazhenko Sergey
Security Testing - Polazhenko SergeyQA Club Minsk
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Andrew Mayorov
 
Угрозы ИБ - retail edition (2016)
Угрозы ИБ - retail edition (2016)Угрозы ИБ - retail edition (2016)
Угрозы ИБ - retail edition (2016)Alexey Kachalin
 
Расширяем идею статического анализа от проверки кода до других процессов разр...
Расширяем идею статического анализа от проверки кода до других процессов разр...Расширяем идею статического анализа от проверки кода до других процессов разр...
Расширяем идею статического анализа от проверки кода до других процессов разр...Andrey Karpov
 
Архитектура защищенного периметра
Архитектура защищенного периметраАрхитектура защищенного периметра
Архитектура защищенного периметраCisco Russia
 
Александр Коротин. Безопасность систем управления турбинами в электроэнергетике
Александр Коротин. Безопасность систем управления турбинами в электроэнергетикеАлександр Коротин. Безопасность систем управления турбинами в электроэнергетике
Александр Коротин. Безопасность систем управления турбинами в электроэнергетикеKaspersky
 

Similar a CodeFest 2011. Петунин Д. — Использование инструментов статического анализа при отладке и верификации безопасности ПО (20)

Философия Application Security
Философия Application SecurityФилософия Application Security
Философия Application Security
 
Анализ ИБ и расследование инцидентов ИБ (учебный семинар)
Анализ ИБ и расследование инцидентов ИБ (учебный семинар)Анализ ИБ и расследование инцидентов ИБ (учебный семинар)
Анализ ИБ и расследование инцидентов ИБ (учебный семинар)
 
Система управления учетными записями (IDM). Информационная безопасность.
Система управления учетными записями (IDM). Информационная безопасность. Система управления учетными записями (IDM). Информационная безопасность.
Система управления учетными записями (IDM). Информационная безопасность.
 
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
 
Руслан Стефанов. Нужны ли модели АСУ ТП при обеспечении информационной безопа...
Руслан Стефанов. Нужны ли модели АСУ ТП при обеспечении информационной безопа...Руслан Стефанов. Нужны ли модели АСУ ТП при обеспечении информационной безопа...
Руслан Стефанов. Нужны ли модели АСУ ТП при обеспечении информационной безопа...
 
нужны ли стенды асутп для иб (Phd 2013) 1305 22 final
нужны ли стенды асутп для иб (Phd 2013) 1305 22 finalнужны ли стенды асутп для иб (Phd 2013) 1305 22 final
нужны ли стенды асутп для иб (Phd 2013) 1305 22 final
 
C++ CoreHard Autumn 2018. Информационная безопасность и разработка ПО - Евген...
C++ CoreHard Autumn 2018. Информационная безопасность и разработка ПО - Евген...C++ CoreHard Autumn 2018. Информационная безопасность и разработка ПО - Евген...
C++ CoreHard Autumn 2018. Информационная безопасность и разработка ПО - Евген...
 
О ядре SOC - SOC-Forum Astana 2017
О ядре SOC - SOC-Forum Astana 2017О ядре SOC - SOC-Forum Astana 2017
О ядре SOC - SOC-Forum Astana 2017
 
Статический анализ Си++ кода
Статический анализ Си++ кодаСтатический анализ Си++ кода
Статический анализ Си++ кода
 
ADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кодаADD 2011: Статический анализ Си++ кода
ADD 2011: Статический анализ Си++ кода
 
Positive Technologies. Григорий Тимофеев. "Позитивные технологии обеспечения ИБ"
Positive Technologies. Григорий Тимофеев. "Позитивные технологии обеспечения ИБ"Positive Technologies. Григорий Тимофеев. "Позитивные технологии обеспечения ИБ"
Positive Technologies. Григорий Тимофеев. "Позитивные технологии обеспечения ИБ"
 
Решения HP для обеспечения информационной безопасности
Решения HP для обеспечения информационной безопасностиРешения HP для обеспечения информационной безопасности
Решения HP для обеспечения информационной безопасности
 
Обзор платформы B4
Обзор платформы B4Обзор платформы B4
Обзор платформы B4
 
Security Testing - Polazhenko Sergey
Security Testing - Polazhenko SergeySecurity Testing - Polazhenko Sergey
Security Testing - Polazhenko Sergey
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
 
McAfee Endpoint Security 10.1
McAfee Endpoint Security 10.1McAfee Endpoint Security 10.1
McAfee Endpoint Security 10.1
 
Угрозы ИБ - retail edition (2016)
Угрозы ИБ - retail edition (2016)Угрозы ИБ - retail edition (2016)
Угрозы ИБ - retail edition (2016)
 
Расширяем идею статического анализа от проверки кода до других процессов разр...
Расширяем идею статического анализа от проверки кода до других процессов разр...Расширяем идею статического анализа от проверки кода до других процессов разр...
Расширяем идею статического анализа от проверки кода до других процессов разр...
 
Архитектура защищенного периметра
Архитектура защищенного периметраАрхитектура защищенного периметра
Архитектура защищенного периметра
 
Александр Коротин. Безопасность систем управления турбинами в электроэнергетике
Александр Коротин. Безопасность систем управления турбинами в электроэнергетикеАлександр Коротин. Безопасность систем управления турбинами в электроэнергетике
Александр Коротин. Безопасность систем управления турбинами в электроэнергетике
 

Más de CodeFest

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander GraebeCodeFest
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита ПрокоповCodeFest
 
Денис Баталов
Денис БаталовДенис Баталов
Денис БаталовCodeFest
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена ГальцинаCodeFest
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр КалашниковCodeFest
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина ИвановаCodeFest
 
Marko Berković
Marko BerkovićMarko Berković
Marko BerkovićCodeFest
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис КортуновCodeFest
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр ЗиминCodeFest
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей КрапивенскийCodeFest
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей ИгнатовCodeFest
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай КрапивныйCodeFest
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander GraebeCodeFest
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим СмирновCodeFest
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин ОсиповCodeFest
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele RialdiCodeFest
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим ПугачевCodeFest
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene GroeschkeCodeFest
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван БондаренкоCodeFest
 
Mete Atamel
Mete AtamelMete Atamel
Mete AtamelCodeFest
 

Más de CodeFest (20)

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита Прокопов
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена Гальцина
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр Калашников
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина Иванова
 
Marko Berković
Marko BerkovićMarko Berković
Marko Berković
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис Кортунов
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр Зимин
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей Игнатов
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим Смирнов
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван Бондаренко
 
Mete Atamel
Mete AtamelMete Atamel
Mete Atamel
 

CodeFest 2011. Петунин Д. — Использование инструментов статического анализа при отладке и верификации безопасности ПО

  • 1. Вы еще просто тестируете? Тогда мы едем к вам! Использование статического анализа при тестировании програмных продуктов Новосибирск, 19 марта 2011. Дмитрий Петунин
  • 2. Статический анализ и безопасность. Что делать, если ваш диагноз ложно-позитивный? Я, ты, он, она ... Кто? Этот безопасный мир безопасного ПО. Темы для размышления
  • 3. Анализ корректности работы программы без ее исполнения Для любых значений переменных Для произвольных входных данных Анализируются все возможные пути исполнения Статический анализ Статический анализ наиболее подходящая технология для анализа безопасности программ
  • 4. Классика жанра if ( !var ) { error(“Invalid variable”, var->name); }
  • 5.
  • 8. Ошибки работы с динамической памятью
  • 17.
  • 18. Меньше знаешь – крепче спишь? Мощность анализа Минимум ложной диагностики Скорость работы Каждый статический анализатор находит свой оптимум из трех параметров
  • 19. Зависимости между значениями Источники ложнопозитивных сообщений Несуществующие пути исполнения int flag; void doo(int *var) { if (flag == 1) *var = 1; } void foo() { intvar; doo(&var); if (flag == 1) printf("%d", var); } Неинициализированное значение var double foo(int x, int y) { return 1 / (x - y); } int main() { printf("%f", foo(6, 3)); printf("%f", foo(3, 0)); return 0; } Возможное деление на 0 double foo(int x, int y) { return 1 / (x - y); } int main() { printf("%f", foo(6, 3)); printf("%f", foo(3, 0)); return 0; } Возможное деление на 0
  • 20. Эффективность QAпроцессов во времени Запуск процесса Эффективность статического анализа и regression тестирования не снижаются со временем
  • 21. Уровни использования статического анализа Меньше 5% времени разработчика Идентификация грубых ошибок Максимальное понимание проблем Разработчик Экономия на количестве запусков Идентификация проблем дизайна Баланс тестирование /cтат. анализ Компонента Существенные ресурсы QA на анализ Повышенные расходы на коммуникацию Mainline Финальная валидация продукта Большие расходы на коммуникацию Нет выявления потенциальных проблем Продукт Эффективность анализа диагностики и процессные расходы возрастают, потребность в HW ресурсах уменьшается
  • 22. Оценка уровня проекта по шкале безопасности Наличие инженера безопасности Треннинги для персонала Наборы политик безопасности для каждого уровня Применение инструментов обеспечения безопасности (статический анализ, …) Процесс управления изменениями (безопасность) Команда верификации безопасности ПО План действий в случае обнаружения проблеммы безопасности в вашем ПО Требования к процессу безопасной разработки ПО Статический анализ является необходимым элементом процесса
  • 23. Положительный настрой Ваши друзья - разработчики, которые неравнодушны к качеству кода приложения. Экономия времени на внедрение Первоначальный анализ доверьте разработчикам – сделают быстро, найдут дизайн проблемы. Анализируйте только новые диагностики Эффективно используйте подавление нежелательной диагностики. Рекомендации по внедрению статического анализа
  • 24. Если вы все еще просто тестируете – пора попробовать статический анализ.
  • 27.
  • 28. Обозначения BunnyPeople, Celeron, Celeron Inside, Centrino, логотипCentrino, Core Inside, Dialogic, FlashFile, i960, InstantIP, Intel, логотип Intel, Intel386, Intel486, Intel740, IntelDX2, IntelDX4, IntelSX2, Intel Core, Intel Inside, логотип Intel Inside, Intel. Leap ahead., логотип Intel. Leap ahead., Intel NetBurst, Intel NetMerge, Intel NetStructure, Intel SingleDriver, Intel SpeedStep, Intel StrataFlash, Intel Viiv, Intel vPro, Intel XScale, IPLink, Itanium, Itanium Inside, MCS, MMX, Oplus, OverDrive, PDCharm, Pentium, Pentium Inside, skoool, Sound Mark, The Journey Inside, VTune, Xeon и Xeon Inside являются товарными знаками, либо зарегистрированными товарными знаками, права на которые принадлежат корпорации Intel или ее подразделениям на территории США и других стран.
  • 29. Публичное использование товарных знаков и фирменной символики Intel допускается исключительно с разрешения корпорации Intel. Добросовестное использование товарных знаков и фирменной символики Intel с целью рекламы и продвижения продукции корпорации Intel предполагает официальное уведомление в установленном порядке.
  • 30. *Другие наименования и товарные знаки являются собственностью своих законных владельцев.
  • 31. Copyright © 2011 Intel Corporation. Данные материалы охраняются авторским правом и защищены нормами международного законодательства об охране авторских прав и соответствующих международных соглашений. Без предварительного письменного согласия корпорации Intel не допускается их копирование, воспроизведение, внесение в них изменений, публикация, загрузка, размещение их в Интернете, пересылка или распространение любыми способами. Если данным документом недвусмысленно не предусмотрено иное, корпорация Intel и ее поставщики не предоставляют пользователю каких-либо прав собственности, как явных, так и подразумеваемых, в отношении каких-либо патентов, авторских прав, товарных знаков или сведений, составляющих коммерческую тайну. Иные права могут быть предоставлены Вам корпорацией Intel либо в письменной форме, либо путем внесения соответствующих положений в документацию, сопровождающую материалы.
  • 32.
  • 33. char lname[FILENAME_MAX]; for (icount = 0; icount < FILENAME_MAX; icount++) { lname[icount] = name[icount]; if ((lname[icount]) == ':') { lname[icount+1] = 0; break; } } banner.c(212): Buffer overflow: array index of "lname" is possibly outside the bounds; array "lname" of size (0:259) can be indexed by value 260
  • 34. Example (Tachyon) static void grid_free(void * v) {       ...       for (i=0; i<numvoxels; i++) {             ...             while (lcur != NULL) {                   lnext = lcur->next;                   free(lcur);             }       }       ... } grid.cpp(131): error #12082: infinite loop
  • 35. Example (Notepad++) } catch (...) {    TCHAR funcInfo[128];    generic_sprintf(funcInfo, TEXT("notify(SCNotification *notification) : notification->nmhdr.code == %d notification- >nmhdr.hwndFrom == %d notification->nmhdr.idFrom == %d"),br />   scNotif.nmhdr.code, scNotif.nmhdr.hwndFrom, scNotif.nmhdr.idFrom);    ... } PluginsManager.cpp(421): error #12224: buffer overflow: size of object "funcInfo" (128 bytes) is less than required size (139 bytes)
  • 36. Conditional paths int flag; void doo(int *var) { if (flag == 1) *var = 1; } void foo() { int var; doo(&var); if (flag == 1) printf("%d", var); } Diagnostics is not reported int flag1, flag2; void test() { int var; if (flag1 && flag2) var = 1; if (flag1 && flag2) printf("%d", var); if (flag1) printf("%d", var); } Diagnostics is reported in second case