| /* |
| * 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 */ |