diff options
author | Yaakov Selkowitz <yselkowi@redhat.com> | 2017-11-30 15:38:15 -0600 |
---|---|---|
committer | Yaakov Selkowitz <yselkowi@redhat.com> | 2017-12-01 03:41:49 -0600 |
commit | 8ba0bbb913e0ea3b691f04b7b842c9af977447ce (patch) | |
tree | 7fff66758cdda8cee4d04030c88a36f164e2522b | |
parent | 10b57ba8d0b5eb56d17d73e280755bf8461230c6 (diff) | |
download | cygnal-8ba0bbb913e0ea3b691f04b7b842c9af977447ce.tar.gz cygnal-8ba0bbb913e0ea3b691f04b7b842c9af977447ce.tar.bz2 cygnal-8ba0bbb913e0ea3b691f04b7b842c9af977447ce.zip |
ssp: add Object Size Checking for unistd.h, part 2
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
-rw-r--r-- | newlib/libc/include/ssp/unistd.h | 44 | ||||
-rw-r--r-- | newlib/libc/ssp/ssp.tex | 3 |
2 files changed, 44 insertions, 3 deletions
diff --git a/newlib/libc/include/ssp/unistd.h b/newlib/libc/include/ssp/unistd.h index 861edd30b..5ca6ace7a 100644 --- a/newlib/libc/include/ssp/unistd.h +++ b/newlib/libc/include/ssp/unistd.h @@ -36,6 +36,40 @@ #if __SSP_FORTIFY_LEVEL > 0 __BEGIN_DECLS +#if __POSIX_VISIBLE >= 199209 +__ssp_redirect(size_t, confstr, (int __name, char *__buf, size_t __len), \ + (__name, __buf, __len)); +#endif + +__ssp_redirect_raw(char *, getcwd, (char *__buf, size_t __len), + (__buf, __len), __buf != 0, __ssp_bos); + +#if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500) +__ssp_redirect(int, getdomainname, (char *__buf, size_t __len), \ + (__buf, __len)); +#endif + +__ssp_decl(int, getgroups, (int __n, gid_t __buf[])) +{ + __ssp_check(__buf, __n * sizeof(gid_t), __ssp_bos); + return __ssp_real_getgroups (__n, __buf); +} + +#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500 +#if !(defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) +__ssp_redirect(int, gethostname, (char *__buf, size_t __len), \ + (__buf, __len)); +#endif +#endif + +__ssp_redirect(int, getlogin_r, (char *__buf, size_t __len), \ + (__buf, __len)); + +#if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 500 +__ssp_redirect0(ssize_t, pread, (int __fd, void *__buf, size_t __len, off_t __off), \ + (__fd, __buf, __len, __off)); +#endif + __ssp_redirect0(_READ_WRITE_RETURN_TYPE, read, \ (int __fd, void *__buf, size_t __len), (__fd, __buf, __len)); @@ -44,8 +78,14 @@ __ssp_redirect(ssize_t, readlink, (const char *__restrict __path, \ char *__restrict __buf, size_t __len), (__path, __buf, __len)); #endif -__ssp_redirect_raw(char *, getcwd, (char *__buf, size_t __len), - (__buf, __len), __buf != 0, __ssp_bos); +#if __ATFILE_VISIBLE +__ssp_redirect(ssize_t, readlinkat, \ + (int __dirfd1, const char *__restrict __path, char *__restrict __buf, size_t __len), \ + (__dirfd1, __path, __buf, __len)); +#endif + +__ssp_redirect(int, ttyname_r, (int __fd, char *__buf, size_t __len), \ + (__fd, __buf, __len)); __END_DECLS diff --git a/newlib/libc/ssp/ssp.tex b/newlib/libc/ssp/ssp.tex index b30ecf159..1e0cb6b12 100644 --- a/newlib/libc/ssp/ssp.tex +++ b/newlib/libc/ssp/ssp.tex @@ -43,6 +43,7 @@ fread snprintf vsprintf mbstowcs wcstombs wctomb @exdent @emph{System functions:} -getcwd read readlink +getcwd read ttyname_r +pread readlink @end example |