aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-08-25 11:24:07 -0700
committerGarrett D'Amore <garrett@damore.org>2017-08-28 11:39:03 -0700
commitd288eba0a5b1fb379a58e1fb6c16b149b6758b3d (patch)
tree04b3f05d53add562b97e738904359b5d453d03a7 /src/core
parent601c64ec4f2b8a41fba59d31a987090feeb69e84 (diff)
downloadnng-d288eba0a5b1fb379a58e1fb6c16b149b6758b3d.tar.gz
nng-d288eba0a5b1fb379a58e1fb6c16b149b6758b3d.tar.bz2
nng-d288eba0a5b1fb379a58e1fb6c16b149b6758b3d.zip
Add nni_strnlen.
More string safety for stuff coming from externals.
Diffstat (limited to 'src/core')
-rw-r--r--src/core/strs.c14
-rw-r--r--src/core/strs.h1
2 files changed, 15 insertions, 0 deletions
diff --git a/src/core/strs.c b/src/core/strs.c
index 7f236236..08338499 100644
--- a/src/core/strs.c
+++ b/src/core/strs.c
@@ -96,3 +96,17 @@ nni_strlcat(char *dst, const char *src, size_t len)
return (n - 1);
#endif
}
+
+size_t
+nni_strnlen(const char *s, size_t len)
+{
+#ifdef NNG_HAVE_STRNLEN
+ return (strnlen(s, len));
+#else
+ size_t n;
+ for (n = 0; (n < len) && (*s); n++) {
+ s++;
+ }
+ return (n);
+#endif
+}
diff --git a/src/core/strs.h b/src/core/strs.h
index 741504cd..42ec4997 100644
--- a/src/core/strs.h
+++ b/src/core/strs.h
@@ -17,5 +17,6 @@ extern char * nni_strdup(const char *);
extern void nni_strfree(char *);
extern size_t nni_strlcpy(char *, const char *, size_t);
extern size_t nni_strlcat(char *, const char *, size_t);
+extern size_t nni_strnlen(const char *, size_t);
#endif // CORE_STRS_H