Make tls_config_parse_protocols() work correctly when passed a NULL pointer
authorjsing <jsing@openbsd.org>
Sat, 9 Dec 2017 16:46:08 +0000 (16:46 +0000)
committerjsing <jsing@openbsd.org>
Sat, 9 Dec 2017 16:46:08 +0000 (16:46 +0000)
for a protocol string.

Issue found by semarie@, who also provided the diff.

lib/libtls/tls_config.c

index 777dfc5..e2e3f4a 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: tls_config.c,v 1.44 2017/09/25 18:07:03 jsing Exp $ */
+/* $OpenBSD: tls_config.c,v 1.45 2017/12/09 16:46:08 jsing Exp $ */
 /*
  * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
  *
@@ -311,8 +311,10 @@ tls_config_parse_protocols(uint32_t *protocols, const char *protostr)
        char *s, *p, *q;
        int negate;
 
-       if (protostr == NULL)
-               return TLS_PROTOCOLS_DEFAULT;
+       if (protostr == NULL) {
+               *protocols = TLS_PROTOCOLS_DEFAULT;
+               return (0);
+       }
 
        if ((s = strdup(protostr)) == NULL)
                return (-1);