summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorAlexander Færøy <ahf@torproject.org>2020-06-30 13:47:55 +0000
committerAlexander Færøy <ahf@torproject.org>2020-06-30 13:47:55 +0000
commitc3ad2a1d2367d6c0ba5c1c81491770056e881a77 (patch)
tree317e52ac2f707bdb91332cda285ec6538c32673a /src/lib
parentbebdd2888fd43510ff7786c6c8f52cd8a5565742 (diff)
parent5721ec22d8be99a6f24fa69d51d0cbdc4ff21739 (diff)
downloadtor-c3ad2a1d2367d6c0ba5c1c81491770056e881a77.tar.gz
tor-c3ad2a1d2367d6c0ba5c1c81491770056e881a77.zip
Merge branch 'tor-github/pr/1785' into maint-0.3.5
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/encoding/pem.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lib/encoding/pem.c b/src/lib/encoding/pem.c
index 24b238b130..51f37d0840 100644
--- a/src/lib/encoding/pem.c
+++ b/src/lib/encoding/pem.c
@@ -85,13 +85,19 @@ pem_decode(uint8_t *dest, size_t destlen, const char *src, size_t srclen,
src = eat_whitespace_eos(src, eos);
char *tag = NULL;
- tor_asprintf(&tag, "-----BEGIN %s-----\n", objtype);
+ tor_asprintf(&tag, "-----BEGIN %s-----", objtype);
if ((size_t)(eos-src) < strlen(tag) || fast_memneq(src, tag, strlen(tag))) {
tor_free(tag);
return -1;
}
src += strlen(tag);
tor_free(tag);
+ /* At this point we insist on spaces (including CR), then an LF. */
+ src = eat_whitespace_eos_no_nl(src, eos);
+ if (src == eos || *src != '\n') {
+ /* Extra junk at end of line: this isn't valid. */
+ return -1;
+ }
// NOTE lack of trailing \n. We do not enforce its presence.
tor_asprintf(&tag, "\n-----END %s-----", objtype);