diff options
Diffstat (limited to 'crypto/buffer/buf_str.c')
-rw-r--r-- | crypto/buffer/buf_str.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/crypto/buffer/buf_str.c b/crypto/buffer/buf_str.c index 84236c7671..07840b57c4 100644 --- a/crypto/buffer/buf_str.c +++ b/crypto/buffer/buf_str.c @@ -60,6 +60,16 @@ #include "cryptlib.h" #include <openssl/buffer.h> +size_t BUF_strnlen(const char *str, size_t maxlen) + { + const char *p; + + for (p = str; *p != '\0' && maxlen-- != 0; ++p) + ; + + return p - str; + } + char *BUF_strdup(const char *str) { if (str == NULL) return(NULL); @@ -73,7 +83,7 @@ char *BUF_strndup(const char *str, size_t siz) if (str == NULL) return(NULL); - len = strlen(str); + len = BUF_strnlen(str, siz); if (siz > len) siz = len; |