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