Как известно, компания id Software выложила исходные коды многих своих игр. Мы уже проверяли некоторые из этих проектов. На этот раз мы решили проанализировать исходный код Quake III Arena GPL. Для...
В этот раз я хочу поговорить о функции printf. Все наслышаны об уязвимостях в программах, и что функции наподобие printf объявлены вне закона. Но одно дело знать, что лучше не использовать эти...
Захотелось написать несколько небольших заметок о том, как программисты на Си/Си++ играют с огнём, не подозревая об этом. Первая заметка будет про попытки явно вызвать конструктор.
При попытке перекомпиляции 32-битного Windows приложения для 64-битной системы, большое количество ошибок компиляции связано с некорректными аргументами функций. Часто можно встретить ситуацию, когда...
При переносе 32-битного кода на 64-битную систему компилятор Visual C++ может выдать множество предупреждений C4267 в коде, где результат функции std::string::find() помещается в переменную типа...
На тему эквивалентны ли эти типы и когда что следует использовать, можно много рассуждать. Но на практике вы можете считать их эквивалентными и использовать по своему предпочтению.
В процессе переноса кода с 32-битной на 64-битную систему иногда может возникнуть желание для сокращения количества ошибок и предупреждений, выдаваемых компилятором, сделать типы size_t/ ptrdiff_t...
Memsize-типы DWORD_PTR, INT_PTR, LONG_PTR, UINT_PTR и ULONG_PTR предназначены для поддержки 64-битного кода и способны безопасно хранить в себе указатель в независимости от разрядности платформы...
Мы решили опубликовать эту статью в базе знаний, чтобы продемонстрировать программистам, как легко приватные данные могут выйти за рамки программы, работающей с ними. В анализаторе PVS-Studio есть...
Это уже четвертая заметка, где я хочу поделиться полезными наблюдениями о паттернах ошибок и том, как можно с ними бороться. В этот раз я затрону такую тему, как обработка редких и аварийных ситуаций...