Звонок в setenv или putenv функция семейства изменяет среду, на которую указывает указатель
Этот дефект возникает при использовании третьего аргумента main () в размещенной среде для доступа к среде после того, как операция изменит среду. В размещенной среде многие реализации C поддерживают нестандартный синтаксис:
main (int argc, char *argv[], char *envp[])
setenv или putenv функция семейства изменяет среду, на которую указывает *envp.При изменении среды с помощью вызова setenv или putenv функция семейства, память среды потенциально может быть перераспределена. Указатель размещенной среды не обновлен и может указывать на неправильное расположение. Вызов этого указателя может привести к неожиданным результатам или к аварийному завершению программы.
Не используйте указатель размещенной среды. Вместо этого используйте глобальную внешнюю переменную environ в Linux ® ,_environ или _wenviron в Windows ® или их эквиваленте. При изменении среды эти переменные обновляются.
| Группа: Программирование |
| Язык: C | C++ |
| По умолчанию: Вкл для рукописного кода, выкл для сгенерированного кода |
Синтаксис командной строки:
INVALID_ENV_POINTER |
| Воздействие: среднее |
| CWE ID: 825 |
Find defects (-checkers) | Misuse of return value from nonreentrant standard function | Modification of internal buffer returned from nonreentrant standard function