From b5d5cebc2b4218ca2c04c52546849df7625a53a0 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Wed, 6 Dec 2023 21:45:57 +0100 Subject: Add qsort --- include/stdlib.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'include') diff --git a/include/stdlib.h b/include/stdlib.h index 5d89c9c..4a5cfde 100644 --- a/include/stdlib.h +++ b/include/stdlib.h @@ -37,6 +37,23 @@ __extension__ extern "C" { #endif +#undef qsort +#if __has_builtin(__builtin_qsort) +__diagnose_as_builtin(__builtin_qsort, 1, 2, 3, 4) +#endif +__access(read_write, 1) +_FORTIFY_FN(qsort) void qsort(void * _FORTIFY_POS0 base, size_t nmemb, size_t size, + int (*compar)(const void *, const void *)) +{ + size_t __b = __bos(base, 0); + + if (__bmo(nmemb, size)) + __builtin_trap(); + if (nmemb * size> __b) + __builtin_trap(); + + return __orig_qsort(base, nmemb, size, compar); +} /* FIXME clang */ #if !defined(__clang__) -- cgit v1.3