summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Orton <jorton@redhat.com>2020-06-09 08:39:50 +0100
committerJoe Orton <jorton@apache.org>2020-06-18 08:01:27 +0100
commit261ca93783b7ff405902b746c9968db6bc5f3fdb (patch)
tree74dbc236c60f3a9cefa4533a3059b9a9303e6fa2
parentab0e0ff0d0ba610defab499c5a14ee14da5b20f4 (diff)
downloadneon-git-261ca93783b7ff405902b746c9968db6bc5f3fdb.tar.gz
* src/ne_openssl.c (ne_vstrhash): Check flags field.
* test/string-tests.c (test_vstrhash, strhash): Test ne_vstrhash() invalid flags handling.
-rw-r--r--src/ne_openssl.c2
-rw-r--r--test/string-tests.c14
2 files changed, 16 insertions, 0 deletions
diff --git a/src/ne_openssl.c b/src/ne_openssl.c
index 8907568..73fc29f 100644
--- a/src/ne_openssl.c
+++ b/src/ne_openssl.c
@@ -1148,6 +1148,8 @@ char *ne_vstrhash(unsigned int flags, va_list ap)
char ret[33];
const char *arg;
+ if (flags != NE_STRHASH_MD5) return NULL;
+
md = EVP_md5();
if (EVP_DigestInit(ctx, md) != 1) return NULL;
diff --git a/test/string-tests.c b/test/string-tests.c
index 68fac46..a0975e7 100644
--- a/test/string-tests.c
+++ b/test/string-tests.c
@@ -650,11 +650,25 @@ static int qappend(void)
return OK;
}
+static char *test_vstrhash(unsigned int flags, ...)
+{
+ va_list ap;
+ char *rv;
+
+ va_start(ap, flags);
+ rv = ne_vstrhash(flags, ap);
+ va_end(ap);
+
+ return rv;
+}
+
static int strhash(void)
{
char *h;
ONN("zero flags must return NULL", ne_strhash(0, "", NULL) != NULL);
+
+ ONN("zero flags must return NULL for vstrhash", test_vstrhash(0, "", NULL) != NULL);
h = ne_strhash(NE_STRHASH_MD5, "", NULL);
ONCMP(h, "d41d8cd98f00b204e9800998ecf8427e");