This is the mail archive of the newlib-cvs@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[newlib-cygwin] ssp: add Object Size Checking for unistd.h, part 2


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=8ba0bbb913e0ea3b691f04b7b842c9af977447ce

commit 8ba0bbb913e0ea3b691f04b7b842c9af977447ce
Author: Yaakov Selkowitz <yselkowi@redhat.com>
Date:   Thu Nov 30 15:38:15 2017 -0600

    ssp: add Object Size Checking for unistd.h, part 2
    
    Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>

Diff:
---
 newlib/libc/include/ssp/unistd.h | 44 ++++++++++++++++++++++++++++++++++++++--
 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 861edd3..5ca6ace 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 b30ecf1..1e0cb6b 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]