summaryrefslogtreecommitdiffstats
path: root/crypto/buffer/buf_str.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/buffer/buf_str.c')
-rw-r--r--crypto/buffer/buf_str.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/crypto/buffer/buf_str.c b/crypto/buffer/buf_str.c
index a464eb6e25..58028ebac7 100644
--- a/crypto/buffer/buf_str.c
+++ b/crypto/buffer/buf_str.c
@@ -62,6 +62,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);
@@ -75,7 +85,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;