Устаревшие стандартные программы могут вызвать проблемы мобильности и уязвимости системы обеспечения безопасности
Этот дефект происходит, когда вы используете стандартные программы стандартной функции, которые рассматриваются наследием, удаленным, удержанным от использования или устаревшим стандартами кодирования C/C++.
Устаревшая функция | Стандарты | Риск | Заменяющая функция |
---|---|---|---|
asctime | Удержанный от использования в POSIX.1-2008 | Не ориентированный на многопотоковое исполнение. | strftime или asctime_s |
asctime_r | Удержанный от использования в POSIX.1-2008 | Реализация на основе небезопасного функционального sprintf . | strftime или asctime_s |
bcmp | Удержанный от использования в 4.3BSD Отмеченный как наследие в POSIX.1-2001. | Возвращается из функции после нахождения первого отличающегося байта, делая его уязвимым для атак временным анализом. | memcmp |
bcopy | Удержанный от использования в 4.3BSD Отмеченный как наследие в POSIX.1-2001. | Возвращается из функции после нахождения первого отличающегося байта, делая его уязвимым для атак временным анализом. | memcpy или memmove |
brk и sbrk | Отмеченный как наследие в SUSv2 и POSIX.1-2001. | malloc | |
bsd_signal | Удаленный в POSIX.1-2008 | sigaction | |
bzero | Отмеченный как наследие в POSIX.1-2001. Удаленный в POSIX.1-2008. | memset | |
ctime | Удержанный от использования в POSIX.1-2008 | Не ориентированный на многопотоковое исполнение. | strftime или asctime_s |
ctime_r | Удержанный от использования в POSIX.1-2008 | Реализация на основе небезопасного функционального sprintf . | strftime или asctime_s |
cuserid | Удаленный в POSIX.1-2001. | Не повторно используемый. Точная функциональность не стандартизированные проблемы мобильности порождения. | getpwuid |
ecvt и fcvt | Отмеченный как наследие в POSIX.1-2001. Удаленный в POSIX.1-2008 | Не повторно используемый | snprintf |
ecvt_r и fcvt_r | Отмеченный как наследие в POSIX.1-2001. Удаленный в POSIX.1-2008 | snprintf | |
ftime | Удаленный в POSIX.1-2008 | time , gettimeofday , clock_gettime | |
gamma , gammaf , gammal | Функция, не заданная в любом стандарте из-за исторических изменений | Проблемы мобильности. | tgamma , lgamma |
gcvt | Отмеченный как наследие в POSIX.1-2001. Удаленный в POSIX.1-2008. | snprintf | |
getcontext | Удаленный в POSIX.1-2008. | Проблемы мобильности. | Используйте поток POSIX вместо этого. |
getdtablesize | API-функция BSD, не включенная в POSIX.1-2001 | Проблемы мобильности. | sysconf( _SC_OPEN_MAX ) |
gethostbyaddr | Удаленный в POSIX.1-2008 | Не повторно используемый | getaddrinfo |
gethostbyname | Удаленный в POSIX.1-2008 | Не повторно используемый | getnameinfo |
getpagesize | API-функция BSD, не включенная в POSIX.1-2001 | Проблемы мобильности. | sysconf( _SC_PAGESIZE ) |
getpass | Удаленный в POSIX.1-2001. | Не повторно используемый. | getpwuid |
getw | Не существующий в POSIX.1-2001. | fread | |
getwd | Отмеченное наследие в POSIX.1-2001. Удаленный в POSIX.1-2008. | getcwd | |
index | Отмеченный как наследие в POSIX.1-2001. Удаленный в POSIX.1-2008. | strchr | |
makecontext | Удаленный в POSIX.1-2008. | Проблемы мобильности. | Используйте поток POSIX вместо этого. |
memalign | Появляется в SunOS 4.1.3. Не в 4.4 BSD или POSIX.1-2001 | posix_memalign | |
mktemp | Удаленный в POSIX.1-2008. | Сгенерированные имена предсказуемы и могут вызвать состояние состязания. | mkstemp удаляет риск гонки |
pthread_attr_getstackaddr и pthread_attr_setstackaddr | Неоднозначности в спецификации stackaddr припишите проблемы мобильности причины | pthread_attr_getstack и pthread_attr_setstack | |
putw | Не существующий в POSIX.1-2001. | Проблемы мобильности. | fwrite |
qecvt и qfcvt | Отмеченный как наследие в POSIX.1-2001, удаленном в POSIX.1-2008 | snprintf | |
qecvt_r и qfcvt_r | Отмеченный как наследие в POSIX.1-2001, удаленном в POSIX.1-2008 | snprintf | |
rand_r | Отмеченный как устаревший в POSIX.1-2008 | ||
re_comp | API-функция BSD | Проблемы мобильности | regcomp |
re_exes | API-функция BSD | Проблемы мобильности | regexec |
rindex | Отмеченный как наследие в POSIX.1-2001. Удаленный в POSIX.1-2008. | strrchr | |
scalb | Удаленный в POSIX.1-2008 | scalbln , scalblnf , или scalblnl | |
sigblock | 4.3BSD сигнализируют о API, источник которого неясен | sigprocmask | |
sigmask | 4.3BSD сигнализируют о API, источник которого неясен | sigprocmask | |
sigsetmask | 4.3BSD сигнализируют о API, источник которого неясен | sigprocmask | |
sigstack | Интерфейс является устаревшим и не реализованный на большинстве платформ. | Проблемы мобильности. | sigaltstack |
sigvec | 4.3BSD сигнализируют о API, источник которого неясен | sigaction | |
swapcontext | Удаленный в POSIX.1-2008 | Проблемы мобильности. | Используйте потоки POSIX. |
tmpnam и tmpnam_r | Отмеченный как устаревший в POSIX.1-2008. | Эта функция генерирует различную строку каждый раз, когда она называется до времен TMP_MAX. Если это называется больше, чем времена TMP_MAX, поведение задано реализацией. | mkstemp , tmpfile |
ttyslot | Удаленный в POSIX.1-2001. | ||
ualarm | Отмеченный как наследие в POSIX.1-2001. Удаленный в POSIX.1-2008. | Ошибки под-заданным | setitimer или POSIX timer_create |
usleep | Удаленный в POSIX.1-2008. | nanosleep | |
utime | SVr4, POSIX.1-2001. POSIX.1-2008 отмечает как устаревший. | ||
valloc | Отмеченный как устаревший в 4.3BSD. Отмеченный как наследие в SUSv2. Удаленный из POSIX.1-2001 | posix_memalign | |
vfork | Удаленный из POSIX.1-2008 | Под-заданным в предыдущих стандартах. | fork |
wcswcs | Эта функция не была включена в итоговый ISO/IEC 9899:1990/Amendment 1:1995 (E). | wcsstr | |
WinExec | WinAPI обеспечивает эту функцию только для 16-битной совместимости Windows. | CreateProcess | |
LoadModule | WinAPI обеспечивает эту функцию только для 16-битной совместимости Windows. | CreateProcess |
Фиксация зависит от первопричины дефекта. Часто детали результата показывают последовательность событий, которые привели к дефекту. Можно реализовать закрепление на любом событии в последовательности. Если детали результата не показывают историю события, можно проследить использование, щелкните правой кнопкой по опциям по исходному коду и смотрите предыдущие связанные события. См. также Интерпретируют Результаты Polyspace Bug Finder.
Смотрите примеры мер ниже.
Если вы не хотите устранять проблему, добавьте комментарии в свой результат или код, чтобы избежать другого анализа. Смотрите Результаты Polyspace Адреса Через Исправления ошибок или Выравнивания.
Группа: безопасность |
Язык: C | C++ |
Значение по умолчанию: Off |
Синтаксис командной строки: OBSOLETE_STD_FUNC |
Удар: низко |
ID CWE: 474, 477 |
Теги: #deprecatedFunctions |
Find defects (-checkers)
| Invalid use of standard library string routine
| Unsafe standard function
| Use of dangerous standard function