This is the mail archive of the libc-hacker@sourceware.org mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


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

[PATCH] _FORTIFY_SOURCE */bits/*.h headers cleanups


Hi!

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=165000
is about realpath prototype mismatch when portmap is built with
-Dconst= option (don't ask my why, I don't want to know).
No matter what, it is good to be consistent with the original prototypes.
I went over the _FORTIFY_SOURCE headers and checked const vs. __const
mismatches, __REDIRECT/__REDIRECT_NTH mismatches, missing __NTH
and missing __restrict.

2005-08-08  Jakub Jelinek  <jakub@redhat.com>

	* posix/bits/unistd.h (confstr, getgroups, ttyname_r, gethostname,
	getdomainname): Add __NTH.
	* stdlib/bits/stdlib.h (ptsname_r, wctomb, mbstowcs, wcstombs):
	Likewise.
	(realpath): Likewise.  Use __const instead of const.  Add __restrict
	keywords.
	* socket/bits/socket2.h (recvfrom): Add __restrict keyword to __buf.
	* wcsmbs/bits/wchar2.h (wmemcpy, wmemmove, wmempcpy, wmemset,
	wcscpy, wcpcpy, wcsncpy, wcpncpy, wcscat, wcsncat, vswprintf, wcrtomb,
	mbsrtowcs, wcsrtombs, mbsnrtowcs, wcsnrtombs): Add __NTH.
	* string/bits/string3.h (__memset_ichk): Likewise.
	(__memcpy_ichk, __memmove_ichk, __mempcpy_ichk, __strcpy_ichk,
	__stpcpy_ichk, __strncpy_ichk, stpncpy, __strcat_ichk,
	__strncat_ichk): Likewise.  Use __const instead of const.
	(__stpncpy_chk): Use __const instead of const.
	(__stpncpy_alias): Use __REDIRECT_NTH instead of __REDIRECT.

--- libc/posix/bits/unistd.h.jj	2005-08-08 19:22:27.000000000 +0200
+++ libc/posix/bits/unistd.h	2005-08-08 19:22:27.000000000 +0200
@@ -135,7 +135,7 @@ extern size_t __REDIRECT_NTH (__confstr_
 						size_t __len), confstr);
 
 extern __always_inline size_t
-confstr (int __name, char *__buf, size_t __len)
+__NTH (confstr (int __name, char *__buf, size_t __len))
 {
   if (__bos (__buf) != (size_t) -1
       && (!__builtin_constant_p (__len) || __bos (__buf) < __len))
@@ -150,7 +150,7 @@ extern int __REDIRECT_NTH (__getgroups_a
 			   getgroups) __wur;
 
 extern __always_inline int
-getgroups (int __size, __gid_t __list[])
+__NTH (getgroups (int __size, __gid_t __list[]))
 {
   if (__bos (__list) != (size_t) -1
       && (!__builtin_constant_p (__size)
@@ -167,7 +167,7 @@ extern int __REDIRECT_NTH (__ttyname_r_a
      __nonnull ((2));
 
 extern __always_inline int
-ttyname_r (int __fd, char *__buf, size_t __buflen)
+__NTH (ttyname_r (int __fd, char *__buf, size_t __buflen))
 {
   if (__bos (__buf) != (size_t) -1
       && (!__builtin_constant_p (__buflen) || __buflen > __bos (__buf)))
@@ -200,7 +200,7 @@ extern int __REDIRECT_NTH (__gethostname
 			   gethostname) __nonnull ((1));
 
 extern __always_inline int
-gethostname (char *__buf, size_t __buflen)
+__NTH (gethostname (char *__buf, size_t __buflen))
 {
   if (__bos (__buf) != (size_t) -1
       && (!__builtin_constant_p (__buflen) || __buflen > __bos (__buf)))
@@ -218,7 +218,7 @@ extern int __REDIRECT_NTH (__getdomainna
 			   getdomainname) __nonnull ((1)) __wur;
 
 extern __always_inline int
-getdomainname (char *__buf, size_t __buflen)
+__NTH (getdomainname (char *__buf, size_t __buflen))
 {
   if (__bos (__buf) != (size_t) -1
       && (!__builtin_constant_p (__buflen) || __buflen > __bos (__buf)))
--- libc/stdlib/bits/stdlib.h.jj	2005-07-28 15:57:16.000000000 +0200
+++ libc/stdlib/bits/stdlib.h	2005-08-08 19:20:12.000000000 +0200
@@ -29,7 +29,7 @@ extern char *__REDIRECT_NTH (__realpath_
 			      char *__restrict __resolved), realpath) __wur;
 
 extern __always_inline __wur char *
-realpath (const char *__name, char *__resolved)
+__NTH (realpath (__const char *__restrict __name, char *__restrict __resolved))
 {
   if (__bos (__resolved) != (size_t) -1)
     return __realpath_chk (__name, __resolved, __bos (__resolved));
@@ -45,7 +45,7 @@ extern int __REDIRECT_NTH (__ptsname_r_a
      __nonnull ((2));
 
 extern __always_inline int
-ptsname_r (int __fd, char *__buf, size_t __buflen)
+__NTH (ptsname_r (int __fd, char *__buf, size_t __buflen))
 {
   if (__bos (__buf) != (size_t) -1
       && (!__builtin_constant_p (__buflen) || __buflen > __bos (__buf)))
@@ -60,7 +60,7 @@ extern int __REDIRECT_NTH (__wctomb_alia
 			   wctomb) __wur;
 
 extern __always_inline __wur int
-wctomb (char *__s, wchar_t __wchar)
+__NTH (wctomb (char *__s, wchar_t __wchar))
 {
   /* We would have to include <limits.h> to get a definition of MB_LEN_MAX.
      But this would only disturb the namespace.  So we define our own
@@ -84,8 +84,8 @@ extern size_t __REDIRECT_NTH (__mbstowcs
 			       size_t __len), mbstowcs);
 
 extern __always_inline size_t
-mbstowcs (wchar_t *__restrict __dst, __const char *__restrict __src,
-	  size_t __len)
+__NTH (mbstowcs (wchar_t *__restrict __dst, __const char *__restrict __src,
+		 size_t __len))
 {
   if (__bos (__dst) != (size_t) -1
       && (!__builtin_constant_p (__len)
@@ -104,8 +104,8 @@ extern size_t __REDIRECT_NTH (__wcstombs
 			       size_t __len), wcstombs);
 
 extern __always_inline size_t
-wcstombs (char *__restrict __dst, __const wchar_t *__restrict __src,
-	  size_t __len)
+__NTH (wcstombs (char *__restrict __dst, __const wchar_t *__restrict __src,
+		 size_t __len))
 {
   if (__bos (__dst) != (size_t) -1
       && (!__builtin_constant_p (__len) || __len > __bos (__dst)))
--- libc/socket/bits/socket2.h.jj	2005-04-13 21:29:21.000000000 +0200
+++ libc/socket/bits/socket2.h	2005-08-08 19:23:14.000000000 +0200
@@ -45,7 +45,7 @@ extern ssize_t __REDIRECT (__recvfrom_al
 			    socklen_t *__restrict __addr_len), recvfrom);
 
 extern __always_inline ssize_t
-recvfrom (int __fd, void *__buf, size_t __n, int __flags,
+recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags,
 	  __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len)
 {
   if (__bos0 (__buf) != (size_t) -1
--- libc/wcsmbs/bits/wchar2.h.jj	2005-07-28 15:59:27.000000000 +0200
+++ libc/wcsmbs/bits/wchar2.h	2005-08-08 19:30:37.000000000 +0200
@@ -31,8 +31,8 @@ extern wchar_t *__REDIRECT_NTH (__wmemcp
 				wmemcpy);
 
 extern __always_inline wchar_t *
-wmemcpy (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2,
-	 size_t __n)
+__NTH (wmemcpy (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2,
+		size_t __n))
 {
   if (__bos0 (__s1) != (size_t) -1)
     return __wmemcpy_chk (__s1, __s2, __n, __bos0 (__s1) / sizeof (wchar_t));
@@ -47,8 +47,8 @@ extern wchar_t *__REDIRECT_NTH (__wmemmo
 						   size_t __n), wmemmove);
 
 extern __always_inline wchar_t *
-wmemmove (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2,
-	  size_t __n)
+__NTH (wmemmove (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2,
+		 size_t __n))
 {
   if (__bos0 (__s1) != (size_t) -1)
     return __wmemmove_chk (__s1, __s2, __n, __bos0 (__s1) / sizeof (wchar_t));
@@ -66,8 +66,8 @@ extern wchar_t *__REDIRECT_NTH (__wmempc
 				 size_t __n), wmempcpy);
 
 extern __always_inline wchar_t *
-wmempcpy (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2,
-	  size_t __n)
+__NTH (wmempcpy (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2,
+		 size_t __n))
 {
   if (__bos0 (__s1) != (size_t) -1)
     return __wmempcpy_chk (__s1, __s2, __n, __bos0 (__s1) / sizeof (wchar_t));
@@ -82,7 +82,7 @@ extern wchar_t *__REDIRECT_NTH (__wmemse
 						  size_t __n), wmemset);
 
 extern __always_inline wchar_t *
-wmemset (wchar_t *__restrict __s, wchar_t __c, size_t __n)
+__NTH (wmemset (wchar_t *__restrict __s, wchar_t __c, size_t __n))
 {
   if (__bos0 (__s) != (size_t) -1)
     return __wmemset_chk (__s, __c, __n, __bos0 (__s) / sizeof (wchar_t));
@@ -98,7 +98,7 @@ extern wchar_t *__REDIRECT_NTH (__wcscpy
 				 __const wchar_t *__restrict __src), wcscpy);
 
 extern __always_inline wchar_t *
-wcscpy (wchar_t *__dest, __const wchar_t *__src)
+__NTH (wcscpy (wchar_t *__dest, __const wchar_t *__src))
 {
   if (__bos (__dest) != (size_t) -1)
     return __wcscpy_chk (__dest, __src, __bos (__dest) / sizeof (wchar_t));
@@ -113,7 +113,7 @@ extern wchar_t *__REDIRECT_NTH (__wcpcpy
 				wcpcpy);
 
 extern __always_inline wchar_t *
-wcpcpy (wchar_t *__dest, __const wchar_t *__src)
+__NTH (wcpcpy (wchar_t *__dest, __const wchar_t *__src))
 {
   if (__bos (__dest) != (size_t) -1)
     return __wcpcpy_chk (__dest, __src, __bos (__dest) / sizeof (wchar_t));
@@ -130,7 +130,7 @@ extern wchar_t *__REDIRECT_NTH (__wcsncp
 				 size_t __n), wcsncpy);
 
 extern __always_inline wchar_t *
-wcsncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)
+__NTH (wcsncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n))
 {
   if (__bos (__dest) != (size_t) -1
       && (!__builtin_constant_p (__n) || __bos (__dest) >= __n))
@@ -149,7 +149,7 @@ extern wchar_t *__REDIRECT_NTH (__wcpncp
 				 size_t __n), wcpncpy);
 
 extern __always_inline wchar_t *
-wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)
+__NTH (wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n))
 {
   if (__bos (__dest) != (size_t) -1
       && (!__builtin_constant_p (__n) || __bos (__dest) >= __n))
@@ -167,7 +167,7 @@ extern wchar_t *__REDIRECT_NTH (__wcscat
 				 __const wchar_t *__restrict __src), wcscat);
 
 extern __always_inline wchar_t *
-wcscat (wchar_t *__dest, __const wchar_t *__src)
+__NTH (wcscat (wchar_t *__dest, __const wchar_t *__src))
 {
   if (__bos (__dest) != (size_t) -1)
     return __wcscat_chk (__dest, __src, __bos (__dest) / sizeof (wchar_t));
@@ -184,7 +184,7 @@ extern wchar_t *__REDIRECT_NTH (__wcsnca
 				 size_t __n), wcsncat);
 
 extern __always_inline wchar_t *
-wcsncat (wchar_t *__dest, __const wchar_t *__src, size_t __n)
+__NTH (wcsncat (wchar_t *__dest, __const wchar_t *__src, size_t __n))
 {
   if (__bos (__dest) != (size_t) -1)
     return __wcsncat_chk (__dest, __src, __n,
@@ -218,8 +218,8 @@ extern int __REDIRECT_NTH (__vswprintf_a
 
 
 extern __always_inline int
-vswprintf (wchar_t *__s, size_t __n, __const wchar_t *__format,
-	   __gnuc_va_list __arg)
+__NTH (vswprintf (wchar_t *__s, size_t __n, __const wchar_t *__format,
+		  __gnuc_va_list __arg))
 {
   if (__bos (__s) != (size_t) -1 || __USE_FORTIFY_LEVEL > 1)
     return __vswprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1, __bos (__s),
@@ -293,7 +293,7 @@ extern size_t __REDIRECT_NTH (__wcrtomb_
 			       mbstate_t *__restrict __ps), wcrtomb) __wur;
 
 extern __always_inline __wur size_t
-wcrtomb (char *__s, wchar_t __wchar, mbstate_t *__ps)
+__NTH (wcrtomb (char *__s, wchar_t __wchar, mbstate_t *__ps))
 {
   /* We would have to include <limits.h> to get a definition of MB_LEN_MAX.
      But this would only disturb the namespace.  So we define our own
@@ -319,8 +319,8 @@ extern size_t __REDIRECT_NTH (__mbsrtowc
 			      mbsrtowcs);
 
 extern __always_inline size_t
-mbsrtowcs (wchar_t *__restrict __dst, __const char **__restrict __src,
-	   size_t __len, mbstate_t *__restrict __ps)
+__NTH (mbsrtowcs (wchar_t *__restrict __dst, __const char **__restrict __src,
+		  size_t __len, mbstate_t *__restrict __ps))
 {
   if (__bos (__dst) != (size_t) -1
       && (!__builtin_constant_p (__len)
@@ -341,8 +341,8 @@ extern size_t __REDIRECT_NTH (__wcsrtomb
 			      wcsrtombs);
 
 extern __always_inline size_t
-wcsrtombs (char *__restrict __dst, __const wchar_t **__restrict __src,
-	   size_t __len, mbstate_t *__restrict __ps)
+__NTH (wcsrtombs (char *__restrict __dst, __const wchar_t **__restrict __src,
+		  size_t __len, mbstate_t *__restrict __ps))
 {
   if (__bos (__dst) != (size_t) -1
       && (!__builtin_constant_p (__len) || __len > __bos (__dst)))
@@ -363,8 +363,8 @@ extern size_t __REDIRECT_NTH (__mbsnrtow
 			      mbsnrtowcs);
 
 extern __always_inline size_t
-mbsnrtowcs (wchar_t *__restrict __dst, __const char **__restrict __src,
-	    size_t __nmc, size_t __len, mbstate_t *__restrict __ps)
+__NTH (mbsnrtowcs (wchar_t *__restrict __dst, __const char **__restrict __src,
+		   size_t __nmc, size_t __len, mbstate_t *__restrict __ps))
 {
   if (__bos (__dst) != (size_t) -1
       && (!__builtin_constant_p (__len)
@@ -386,8 +386,8 @@ extern size_t __REDIRECT_NTH (__wcsnrtom
 			       mbstate_t *__restrict __ps), wcsnrtombs);
 
 extern __always_inline size_t
-wcsnrtombs (char *__restrict __dst, __const wchar_t **__restrict __src,
-	    size_t __nwc, size_t __len, mbstate_t *__restrict __ps)
+__NTH (wcsnrtombs (char *__restrict __dst, __const wchar_t **__restrict __src,
+		   size_t __nwc, size_t __len, mbstate_t *__restrict __ps))
 {
   if (__bos (__dst) != (size_t) -1
       && (!__builtin_constant_p (__len) || __len > __bos (__dst)))
--- libc/string/bits/string3.h.jj	2005-07-20 10:32:49.000000000 +0200
+++ libc/string/bits/string3.h	2005-08-08 19:27:50.000000000 +0200
@@ -45,8 +45,8 @@
    ? __builtin___memcpy_chk (dest, src, len, __bos0 (dest))		\
    : __memcpy_ichk (dest, src, len))
 static __always_inline void *
-__memcpy_ichk (void *__restrict __dest, const void *__restrict __src,
-	       size_t __len)
+__NTH (__memcpy_ichk (void *__restrict __dest, __const void *__restrict __src,
+		      size_t __len))
 {
   return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest));
 }
@@ -57,7 +57,7 @@ __memcpy_ichk (void *__restrict __dest, 
    ? __builtin___memmove_chk (dest, src, len, __bos0 (dest))		\
    : __memmove_ichk (dest, src, len))
 static __always_inline void *
-__memmove_ichk (void *__dest, const void *__src, size_t __len)
+__NTH (__memmove_ichk (void *__dest, __const void *__src, size_t __len))
 {
   return __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest));
 }
@@ -69,8 +69,8 @@ __memmove_ichk (void *__dest, const void
    ? __builtin___mempcpy_chk (dest, src, len, __bos0 (dest))		\
    : __mempcpy_ichk (dest, src, len))
 static __always_inline void *
-__mempcpy_ichk (void *__restrict __dest, const void *__restrict __src,
-		size_t __len)
+__NTH (__mempcpy_ichk (void *__restrict __dest,
+		       __const void *__restrict __src, size_t __len))
 {
   return __builtin___mempcpy_chk (__dest, __src, __len, __bos0 (__dest));
 }
@@ -91,7 +91,7 @@ __warndecl (__warn_memset_zero_len,
       ? __builtin___memset_chk (dest, ch, len, __bos0 (dest))		      \
       : __memset_ichk (dest, ch, len)))
 static __always_inline void *
-__memset_ichk (void *__dest, int __ch, size_t __len)
+__NTH (__memset_ichk (void *__dest, int __ch, size_t __len))
 {
   return __builtin___memset_chk (__dest, __ch, __len, __bos0 (__dest));
 }
@@ -113,7 +113,7 @@ __memset_ichk (void *__dest, int __ch, s
    ? __builtin___strcpy_chk (dest, src, __bos (dest))			\
    : __strcpy_ichk (dest, src))
 static __always_inline char *
-__strcpy_ichk (char *__restrict __dest, const char *__restrict __src)
+__NTH (__strcpy_ichk (char *__restrict __dest, __const char *__restrict __src))
 {
   return __builtin___strcpy_chk (__dest, __src, __bos (__dest));
 }
@@ -125,7 +125,7 @@ __strcpy_ichk (char *__restrict __dest, 
    ? __builtin___stpcpy_chk (dest, src, __bos (dest))			\
    : __stpcpy_ichk (dest, src))
 static __always_inline char *
-__stpcpy_ichk (char *__restrict __dest, const char *__restrict __src)
+__NTH (__stpcpy_ichk (char *__restrict __dest, __const char *__restrict __src))
 {
   return __builtin___stpcpy_chk (__dest, __src, __bos (__dest));
 }
@@ -137,21 +137,22 @@ __stpcpy_ichk (char *__restrict __dest, 
    ? __builtin___strncpy_chk (dest, src, len, __bos (dest))		\
    : __strncpy_ichk (dest, src, len))
 static __always_inline char *
-__strncpy_ichk (char *__restrict __dest, const char *__restrict __src,
-		size_t __len)
+__NTH (__strncpy_ichk (char *__restrict __dest, __const char *__restrict __src,
+		       size_t __len))
 {
   return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
 }
 
 
 // XXX We have no corresponding builtin yet.
-extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n,
+extern char *__stpncpy_chk (char *__dest, __const char *__src, size_t __n,
 			    size_t __destlen) __THROW;
-extern char *__REDIRECT (__stpncpy_alias, (char *__dest, const char *__src,
-					   size_t __n), stpncpy) __THROW;
+extern char *__REDIRECT_NTH (__stpncpy_alias, (char *__dest,
+					       __const char *__src,
+					       size_t __n), stpncpy);
 
 extern __always_inline char *
-stpncpy (char *__dest, const char *__src, size_t __n)
+__NTH (stpncpy (char *__dest, __const char *__src, size_t __n))
 {
   if (__bos (__dest) != (size_t) -1
       && (!__builtin_constant_p (__n) || __n <= __bos (__dest)))
@@ -165,7 +166,7 @@ stpncpy (char *__dest, const char *__src
    ? __builtin___strcat_chk (dest, src, __bos (dest))			\
    : __strcat_ichk (dest, src))
 static __always_inline char *
-__strcat_ichk (char *__restrict __dest, const char *__restrict __src)
+__NTH (__strcat_ichk (char *__restrict __dest, __const char *__restrict __src))
 {
   return __builtin___strcat_chk (__dest, __src, __bos (__dest));
 }
@@ -176,8 +177,8 @@ __strcat_ichk (char *__restrict __dest, 
    ? __builtin___strncat_chk (dest, src, len, __bos (dest))		\
    : __strncat_ichk (dest, src, len))
 static __always_inline char *
-__strncat_ichk (char *__restrict __dest, const char *__restrict __src,
-		size_t __len)
+__NTH (__strncat_ichk (char *__restrict __dest, __const char *__restrict __src,
+		       size_t __len))
 {
   return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
 }

	Jakub


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