Функция пытается изменить внутренний буфер, возвращенный из не входящей стандартной функции
Этот дефект возникает, когда происходит следующее:
Невходящая стандартная функция возвращает указатель.
Вы пытаетесь записать в место памяти, на которое указывает указатель мыши.
Невходящие стандартные функции, которые возвращают не const
-квалифицированный указатель на внутренний буфер включает getenv
, getlogin
, crypt
, setlocale
, localeconv
, strerror
и другие.
Изменение внутреннего буфера, который возвращает не входящая стандартная функция, может вызвать следующие проблемы:
Возможно, что изменение не завершится успешно или изменит другие внутренние данные.
Для образца, getenv
возвращает указатель на значение переменныхо окружения. Если вы изменяете это значение, вы изменяете окружение процесса и повреждаете другие внутренние данные.
Даже если изменение завершится успешно, возможно, что последующий вызов той же стандартной функции не вернет ваше измененное значение.
Например, вы изменяете значение переменныхо окружения, которое getenv
возвращает. Если вызывается другой процесс, поток или обработчик сигналов setenv
измененное значение перезаписывается. Поэтому последующий вызов getenv
не возвращает измененное значение.
Избегайте изменения внутреннего буфера с помощью указателя, возвращенного из функции.
Группа: Программирование |
Язык: C | C++ |
По умолчанию: Off |
Синтаксис командной строки: WRITE_INTERNAL_BUFFER_RETURNED_FROM_STD_FUNC |
Влияние: Низкое |
ИДЕНТИФИКАТОР CWE: 573, 628 |