Blob Blame History Raw
autofs-5.0.6 - fix initialization in rpc create_client()

From: Ian Kent <ikent@redhat.com>

Sometimes the RPC function create_client() function gets a
non-null stack variable passed in which can cause a SEGV.
Fix it by initializing the passed in variable.
---

 lib/rpc_subs.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)


diff --git a/lib/rpc_subs.c b/lib/rpc_subs.c
index f051e43..85796d1 100644
--- a/lib/rpc_subs.c
+++ b/lib/rpc_subs.c
@@ -316,6 +316,7 @@ static int create_client(struct conn_info *info, CLIENT **client)
 	int fd, ret;
 
 	fd = RPC_ANYSOCK;
+	*client = NULL;
 
 	if (info->client) {
 		if (!clnt_control(info->client, CLGET_FD, (char *) &fd)) {
@@ -377,12 +378,13 @@ static int create_client(struct conn_info *info, CLIENT **client)
 
 	freeaddrinfo(ai);
 
+done:
 	if (!*client) {
 		info->client = NULL;
 		ret = -ENOTCONN;
 		goto out_close;
 	}
-done:
+
 	/* Close socket fd on destroy, as is default for rpcowned fds */
 	if  (!clnt_control(*client, CLSET_FD_CLOSE, NULL)) {
 		clnt_destroy(*client);