[PATCH] ssp: add Object Size Checking for unistd.h, part 2

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH] ssp: add Object Size Checking for unistd.h, part 2

Yaakov Selkowitz-2
Signed-off-by: Yaakov Selkowitz <[hidden email]>
---
 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 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
--
2.15.0

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] ssp: add Object Size Checking for unistd.h, part 2

Corinna Vinschen
On Nov 30 15:39, Yaakov Selkowitz wrote:
> Signed-off-by: Yaakov Selkowitz <[hidden email]>
> ---
>  newlib/libc/include/ssp/unistd.h | 44 ++++++++++++++++++++++++++++++++++++++--
>  newlib/libc/ssp/ssp.tex          |  3 ++-
>  2 files changed, 44 insertions(+), 3 deletions(-)

ACK


Thanks,
Corinna

--
Corinna Vinschen
Cygwin Maintainer
Red Hat

signature.asc (836 bytes) Download Attachment