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