46 lines
928 B
C
Executable File
46 lines
928 B
C
Executable File
/*
|
|
* Copyright © 2003 Sun Microsystems, Inc. All rights reserved.
|
|
* Use is subject to license terms specified in the COPYING file
|
|
* distributed with the Net-SNMP package.
|
|
*/
|
|
#include <net-snmp/net-snmp-config.h>
|
|
|
|
#if !HAVE_STRLCPY
|
|
|
|
#if HAVE_STRING_H
|
|
#include <string.h>
|
|
#else
|
|
#include <strings.h>
|
|
#endif
|
|
|
|
#include <sys/types.h>
|
|
|
|
/*
|
|
* Copies src to the dest buffer. The copy will never overflow the dest buffer
|
|
* and dest will always be null terminated, len is the size of the dest buffer.
|
|
*
|
|
* Returns the length of the src buffer.
|
|
*/
|
|
size_t
|
|
strlcpy(char *dest, const char *src, size_t len)
|
|
{
|
|
size_t src_len = strlen(src);
|
|
size_t new_len;
|
|
|
|
if (len == 0) {
|
|
return (src_len);
|
|
}
|
|
|
|
if (src_len >= len) {
|
|
new_len = len - 1;
|
|
} else {
|
|
new_len = src_len;
|
|
}
|
|
|
|
memcpy(dest, src, new_len);
|
|
dest[new_len] = '\0';
|
|
return (src_len);
|
|
}
|
|
|
|
#endif /* !HAVE_STRLCPY */
|