1 #include "selinux_internal.h"
2
3 #include <errno.h>
4 #include <stdint.h>
5 #include <stdlib.h>
6 #include <string.h>
7
8
9 #ifndef HAVE_STRLCPY
strlcpy(char * dest,const char * src,size_t size)10 size_t strlcpy(char *dest, const char *src, size_t size)
11 {
12 size_t ret = strlen(src);
13
14 if (size) {
15 size_t len = (ret >= size) ? size - 1 : ret;
16 memcpy(dest, src, len);
17 dest[len] = '\0';
18 }
19 return ret;
20 }
21 #endif /* HAVE_STRLCPY */
22
23 #ifndef HAVE_REALLOCARRAY
reallocarray(void * ptr,size_t nmemb,size_t size)24 void *reallocarray(void *ptr, size_t nmemb, size_t size)
25 {
26 if (size && nmemb > SIZE_MAX / size) {
27 errno = ENOMEM;
28 return NULL;
29 }
30
31 return realloc(ptr, nmemb * size);
32 }
33 #endif /* HAVE_REALLOCARRAY */
34