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