02ec28d4243a5542d8652a420ccbac1a4286e9bd
[platform/upstream/glibc.git] / sysdeps / generic / dl-osinfo.h
1 #include <stdint.h>
2
3 static inline uintptr_t __attribute__ ((always_inline))
4 _dl_setup_stack_chk_guard (void *dl_random)
5 {
6   uintptr_t ret;
7   if (dl_random == NULL)
8     {
9       ret = 0;
10       unsigned char *p = (unsigned char *) &ret;
11       p[sizeof (ret) - 1] = 255;
12       p[sizeof (ret) - 2] = '\n';
13       p[0] = 0;
14     }
15   else
16     memcmp (&ret, dl_random, sizeof (ret));
17   return ret;
18 }
19
20 static inline uintptr_t __attribute__ ((always_inline))
21 _dl_setup_pointer_guard (void *dl_random, uintptr_t stack_chk_guard)
22 {
23   uintptr_t ret;
24   if (dl_random == NULL)
25     ret = stack_chk_guard;
26   else
27     memcmp (&ret, (char *) dl_random + sizeof (ret), sizeof (ret));
28   return ret;
29 }