165
char *BUF_strdup(const char *str)
167
if (str == NULL) return(NULL);
168
return BUF_strndup(str, strlen(str));
171
char *BUF_strndup(const char *str, size_t siz)
175
if (str == NULL) return(NULL);
177
ret=OPENSSL_malloc(siz+1);
180
BUFerr(BUF_F_BUF_STRNDUP,ERR_R_MALLOC_FAILURE);
183
BUF_strlcpy(ret,str,siz+1);
187
void *BUF_memdup(const void *data, size_t siz)
191
if (data == NULL) return(NULL);
193
ret=OPENSSL_malloc(siz);
196
BUFerr(BUF_F_BUF_MEMDUP,ERR_R_MALLOC_FAILURE);
199
return memcpy(ret, data, siz);
202
size_t BUF_strlcpy(char *dst, const char *src, size_t size)
205
for(; size > 1 && *src; size--)
212
return l + strlen(src);
215
size_t BUF_strlcat(char *dst, const char *src, size_t size)
218
for(; size > 0 && *dst; size--, dst++)
220
return l + BUF_strlcpy(dst, src, size);