From 45080ef65d5fe33ea2411f2acf2f9651c0f1c3a9 Mon Sep 17 00:00:00 2001 From: Nalin Dahyabhai Date: May 07 2015 20:45:46 +0000 Subject: When parsing possibly-PKCS#7, handle length==1 When parsing PKCS#7 or X.509 data which might be binary or text, accept a length of -1 as implicitly meaning the strlen() of a passed-in buffer, to make things easier for callers who know they're passing us text. --- diff --git a/src/pkcs7.c b/src/pkcs7.c index 74cb333..e4e80eb 100644 --- a/src/pkcs7.c +++ b/src/pkcs7.c @@ -226,6 +226,9 @@ cm_pkcs7_parse_buffer(const unsigned char *buffer, size_t length, if (length == 0) { return; } + if (length == (size_t) -1) { + length = strlen((const char *) buffer); + } /* First, try to parse as a PKCS#7 signed or enveloped data item. */ p = buffer; p7 = d2i_PKCS7(NULL, &p, length);