mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-09-20 23:18:56 +02:00
ssp: switch to _limits.h for the upper bound of size_t
The definitions in _stdint.h has some complications around visibility that _limits.h does not have. Switch to __SIZE_T_MAX to avoid those. This fixes the devel/gperf, devel/glib20 and math/mpfr builds with _FORTIFY_SOURCE enabled to unlock a large fraction of the ports tree to build. Reported by: Shawn Webb (HardenedBSD) Sponsored by: Klara, Inc. Sponsored by: Stormshield
This commit is contained in:
parent
28391f188c
commit
de866aa352
@ -87,7 +87,7 @@ __ssp_redirect_raw_impl(rtype, fun, symbol, args) { \
|
|||||||
#define __ssp_redirect0(rtype, fun, args, call) \
|
#define __ssp_redirect0(rtype, fun, args, call) \
|
||||||
__ssp_redirect_raw(rtype, fun, fun, args, call, 1, __ssp_bos0, __len)
|
__ssp_redirect_raw(rtype, fun, fun, args, call, 1, __ssp_bos0, __len)
|
||||||
|
|
||||||
#include <machine/_stdint.h>
|
#include <machine/_limits.h>
|
||||||
|
|
||||||
__ssp_inline int
|
__ssp_inline int
|
||||||
__ssp_overlap(const void *leftp, const void *rightp, __size_t sz)
|
__ssp_overlap(const void *leftp, const void *rightp, __size_t sz)
|
||||||
@ -96,9 +96,9 @@ __ssp_overlap(const void *leftp, const void *rightp, __size_t sz)
|
|||||||
__uintptr_t right = (__uintptr_t)rightp;
|
__uintptr_t right = (__uintptr_t)rightp;
|
||||||
|
|
||||||
if (left <= right)
|
if (left <= right)
|
||||||
return (SIZE_MAX - sz < left || right < left + sz);
|
return (__SIZE_T_MAX - sz < left || right < left + sz);
|
||||||
|
|
||||||
return (SIZE_MAX - sz < right || left < right + sz);
|
return (__SIZE_T_MAX - sz < right || left < right + sz);
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <sys/_iovec.h>
|
#include <sys/_iovec.h>
|
||||||
|
@ -35,7 +35,7 @@ __ssp_inline int
|
|||||||
__ssp_wchar_overlap(const void *leftp, const void *rightp, size_t len)
|
__ssp_wchar_overlap(const void *leftp, const void *rightp, size_t len)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (len > SIZE_MAX / sizeof(wchar_t))
|
if (len > __SIZE_T_MAX / sizeof(wchar_t))
|
||||||
return (1);
|
return (1);
|
||||||
return (__ssp_overlap(leftp, rightp, len * sizeof(wchar_t)));
|
return (__ssp_overlap(leftp, rightp, len * sizeof(wchar_t)));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user