xref: /aosp_15_r20/external/musl/src/string/strndup.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #include <stdlib.h>
2*c9945492SAndroid Build Coastguard Worker #include <string.h>
3*c9945492SAndroid Build Coastguard Worker 
strndup(const char * s,size_t n)4*c9945492SAndroid Build Coastguard Worker char *strndup(const char *s, size_t n)
5*c9945492SAndroid Build Coastguard Worker {
6*c9945492SAndroid Build Coastguard Worker 	size_t l = strnlen(s, n);
7*c9945492SAndroid Build Coastguard Worker 	char *d = malloc(l+1);
8*c9945492SAndroid Build Coastguard Worker 	if (!d) return NULL;
9*c9945492SAndroid Build Coastguard Worker 	memcpy(d, s, l);
10*c9945492SAndroid Build Coastguard Worker 	d[l] = 0;
11*c9945492SAndroid Build Coastguard Worker 	return d;
12*c9945492SAndroid Build Coastguard Worker }
13