From 0543f1d02ee733d34ee109d00e7d0efd432bb37b Mon Sep 17 00:00:00 2001
From: Lee Duncan <lduncan@suse.com>
Date: Tue, 28 Jan 2020 11:49:55 -0800
Subject: [PATCH] Fix compiler issue when not in security mode

---
 client.c               | 20 +++++++++++++-------
 db-policy.c            | 12 +++++++++---
 include/libisns/util.h |  1 +
 isnsadm.c              |  2 +-
 security.c             | 14 ++++++++------
 socket.c               |  5 +++--
 6 files changed, 35 insertions(+), 19 deletions(-)

--- a/client.c
+++ b/client.c
@@ -122,22 +122,17 @@ isns_client_get_local_address(const isns
 /*
  * Create a security context
  */
+#ifdef WITH_SECURITY
 static isns_security_t *
 __create_security_context(const char *name, const char *auth_key,
 		const char *server_key)
 {
-#ifdef WITH_SECURITY
 	isns_security_t 	*ctx;
 	isns_principal_t	*princ;
-#endif /* WITH_SECURITY */
 
 	if (!isns_config.ic_security)
 		return NULL;
 
-#ifndef WITH_SECURITY
-	isns_error("Cannot create security context: security disabled at build time\n");
-	return NULL;
-#else /* WITH_SECURITY */
 	ctx = isns_create_dsa_context();
 	if (ctx == NULL)
 		isns_fatal("Unable to create security context\n");
@@ -174,8 +169,19 @@ __create_security_context(const char *na
 	}
 
 	return ctx;
-#endif /* WITH_SECURITY */
 }
+#else	/* WITH_SECURITY */
+static isns_security_t *
+__create_security_context(__attribute__((unused))const char *name,
+			  __attribute__((unused))const char *auth_key,
+			  __attribute__((unused))const char *server_key)
+{
+	if (!isns_config.ic_security)
+		return NULL;
+	isns_error("Cannot create security context: security disabled at build time\n");
+	return NULL;
+}
+#endif	/* WITH_SECURITY */
 
 /*
  * Create the default security context
--- a/db-policy.c
+++ b/db-policy.c
@@ -52,11 +52,11 @@ __isns_db_keystore_lookup(isns_db_keysto
 /*
  * Load a DSA key from the DB store
  */
+#ifdef WITH_SECURITY
 static EVP_PKEY *
 __isns_db_keystore_find(isns_keystore_t *store_base,
 		const char *name, size_t namelen)
 {
-#ifdef WITH_SECURITY
 	isns_db_keystore_t *store = (isns_db_keystore_t *) store_base;
 	isns_object_t	*obj;
 	const void	*key_data;
@@ -71,10 +71,16 @@ __isns_db_keystore_find(isns_keystore_t
 		return NULL;
 
 	return isns_dsa_decode_public(key_data, key_size);
-#else
+}
+#else	/* WITH_SECURITY */
+static EVP_PKEY *
+__isns_db_keystore_find(__attribute__((unused))isns_keystore_t *store_base,
+			__attribute__((unused))const char *name,
+			__attribute__((unused))size_t namelen)
+{
 	return NULL;
-#endif
 }
+#endif	/* WITH_SECURITY */
 
 /*
  * Retrieve policy from database
--- a/include/libisns/util.h
+++ b/include/libisns/util.h
@@ -14,6 +14,7 @@
 #include <string.h>	// for strdup
 #include <signal.h>
 #include <libisns/types.h>
+#include <stdlib.h>
 
 #define array_num_elements(a) (sizeof(a) / sizeof((a)[0]))
 
--- a/isnsadm.c
+++ b/isnsadm.c
@@ -1162,7 +1162,7 @@ generate_key_callback(void)
 }
 
 isns_attr_t *
-load_key_callback(const char *pathname)
+load_key_callback(__attribute__((unused))const char *pathname)
 {
 	isns_fatal("Authentication disabled in this build\n");
 	return NULL;
--- a/security.c
+++ b/security.c
@@ -408,32 +408,34 @@ isns_security_init(void)
 }
 
 isns_keystore_t *
-isns_create_keystore(const char *spec)
+isns_create_keystore(__attribute__((unused))const char *spec)
 {
 	isns_no_security();
 	return NULL;
 }
 
 void
-isns_security_set_keystore(isns_security_t *ctx,
-			isns_keystore_t *ks)
+isns_security_set_keystore(__attribute__((unused))isns_security_t *ctx,
+			   __attribute__((unused))isns_keystore_t *ks)
 {
 	isns_no_security();
 }
 
 void
-isns_principal_free(isns_principal_t *peer)
+isns_principal_free(__attribute__((unused))isns_principal_t *peer)
 {
 }
 
 isns_principal_t *
-isns_get_principal(isns_security_t *ctx, const char *spi, size_t spi_len)
+isns_get_principal(__attribute__((unused))isns_security_t *ctx,
+		   __attribute__((unused))const char *spi,
+		   __attribute__((unused))size_t spi_len)
 {
 	return NULL;
 }
 
 const char *
-isns_principal_name(const isns_principal_t *princ)
+isns_principal_name(__attribute__((unused))const isns_principal_t *princ)
 {
 	return NULL;
 }
--- a/socket.c
+++ b/socket.c
@@ -322,8 +322,9 @@ failed:
 }
 #else /* WITH_SECURITY */
 static int
-isns_pdu_authenticate(isns_security_t *sec,
-		struct isns_partial_msg *msg, buf_t *bp)
+isns_pdu_authenticate(__attribute__((unused))isns_security_t *sec,
+		      __attribute__((unused))struct isns_partial_msg *msg,
+		      __attribute__((unused))buf_t *bp)
 {
 	return 0;
 }