upstream: better error code for bad arguments; inspired by
OpenBSD-Commit-ID: dfc263b6041de7f0ed921a1de0b81ddebfab1e0a
diff --git a/kex.c b/kex.c
index 1eb2726..84f8e2a 100644
--- a/kex.c
+++ b/kex.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kex.c,v 1.152 2019/09/05 09:35:19 djm Exp $ */
+/* $OpenBSD: kex.c,v 1.153 2019/09/06 01:58:50 djm Exp $ */
/*
* Copyright (c) 2000, 2001 Markus Friedl. All rights reserved.
*
@@ -223,7 +223,10 @@
char *list = NULL, *ret = NULL, *matching = NULL, *opatterns = NULL;
int r = SSH_ERR_INTERNAL_ERROR;
- if (listp == NULL || *listp == NULL || **listp == '\0') {
+ if (listp == NULL || def == NULL || all == NULL)
+ return SSH_ERR_INVALID_ARGUMENT;
+
+ if (*listp == NULL || **listp == '\0') {
if ((*listp = strdup(def)) == NULL)
return SSH_ERR_ALLOC_FAIL;
return 0;