summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2017-02-13 09:39:46 -0500
committerNick Mathewson <nickm@torproject.org>2017-02-14 16:38:47 -0500
commitc4f2faf3019f2c41f9c3b2b8a73b4fe41e881328 (patch)
treeddb5cd77c06a5dda60a8f7683bcd6b2ce506c601 /src/common
parent4a2afd5b33f02ed3e5eb591dd29537fa4f69399f (diff)
downloadtor-c4f2faf3019f2c41f9c3b2b8a73b4fe41e881328.tar.gz
tor-c4f2faf3019f2c41f9c3b2b8a73b4fe41e881328.zip
Don't atoi off the end of a buffer chunk.
Fixes bug 20894; bugfix on 0.2.0.16-alpha. We already applied a workaround for this as 20834, so no need to freak out (unless you didn't apply 20384 yet).
Diffstat (limited to 'src/common')
-rw-r--r--src/common/util.c13
-rw-r--r--src/common/util.h1
2 files changed, 14 insertions, 0 deletions
diff --git a/src/common/util.c b/src/common/util.c
index a7bce2ea6c..9024dbfe10 100644
--- a/src/common/util.c
+++ b/src/common/util.c
@@ -712,6 +712,19 @@ tor_strisnonupper(const char *s)
return 1;
}
+/** Return true iff every character in <b>s</b> is whitespace space; else
+ * return false. */
+int
+tor_strisspace(const char *s)
+{
+ while (*s) {
+ if (!TOR_ISSPACE(*s))
+ return 0;
+ s++;
+ }
+ return 1;
+}
+
/** As strcmp, except that either string may be NULL. The NULL string is
* considered to be before any non-NULL string. */
int
diff --git a/src/common/util.h b/src/common/util.h
index 479fc8d610..6a743a6eac 100644
--- a/src/common/util.h
+++ b/src/common/util.h
@@ -186,6 +186,7 @@ void tor_strlower(char *s) ATTR_NONNULL((1));
void tor_strupper(char *s) ATTR_NONNULL((1));
int tor_strisprint(const char *s) ATTR_NONNULL((1));
int tor_strisnonupper(const char *s) ATTR_NONNULL((1));
+int tor_strisspace(const char *s);
int strcmp_opt(const char *s1, const char *s2);
int strcmpstart(const char *s1, const char *s2) ATTR_NONNULL((1,2));
int strcmp_len(const char *s1, const char *s2, size_t len) ATTR_NONNULL((1,2));