浏览代码

erlang: fix use of an uninitialized variable

Ensure to initialize variable before use.
Seudin Kasumovic 7 年之前
父节点
当前提交
a379ef730b
共有 3 个文件被更改,包括 11 次插入7 次删除
  1. 5 7
      src/modules/erlang/erl_helpers.c
  2. 2 0
      src/modules/erlang/handle_emsg.c
  3. 4 0
      src/modules/erlang/handle_rpc.c

+ 5 - 7
src/modules/erlang/erl_helpers.c

@@ -73,7 +73,6 @@ int erl_passive_socket(const char *hostname, int qlen,
 	int port;
 	struct addrinfo *ai;
 	struct addrinfo hints;
-	struct ip_addr ip;
 	socklen_t addrlen = sizeof(struct sockaddr);
 
 	memset(&hints, 0, sizeof(struct addrinfo));
@@ -103,8 +102,7 @@ int erl_passive_socket(const char *hostname, int qlen,
 	/* initialize TCP */
 #if  !defined(TCP_DONT_REUSEADDR)
 	if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(int))) {
-		LM_ERR("failed to enable SO_REUSEADDR for socket on %s %s, %s\n",
-				hostname, ip_addr2strz(&ip), strerror(errno));
+		LM_ERR("failed to enable SO_REUSEADDR: %s\n", strerror(errno));
 	}
 #endif
 	/* tos */
@@ -118,8 +116,8 @@ int erl_passive_socket(const char *hostname, int qlen,
 	if (bind(sockfd, ai->ai_addr, ai->ai_addrlen) < 0)
 	{
 		port=sockaddr_port(ai->ai_addr);
-		LM_CRIT("failed to bind socket on %s %s:%u. %s.\n", hostname,
-				ip_addr2strz(&ip), port, strerror(errno));
+		LM_CRIT("failed to bind socket on %s:%u. %s.\n", hostname,
+				port, strerror(errno));
 
 		erl_close_socket(sockfd);
 		freeaddrinfo(ai);
@@ -128,8 +126,8 @@ int erl_passive_socket(const char *hostname, int qlen,
 
 	if (ai->ai_socktype == SOCK_STREAM && listen(sockfd, qlen) < 0)
 	{
-		LM_CRIT("failed to listen socket on %s, %s. %s.\n", hostname,
-				ip_addr2strz(&ip), strerror(errno));
+		LM_CRIT("failed to listen socket on %s: %s.\n", hostname,
+				strerror(errno));
 
 		erl_close_socket(sockfd);
 		freeaddrinfo(ai);

+ 2 - 0
src/modules/erlang/handle_emsg.c

@@ -640,6 +640,8 @@ int handle_rex_msg(cnode_handler_t *phandler, erlang_msg * msg)
 	ei_x_buff *request = &phandler->request;
 	ei_x_buff *response = &phandler->response;
 
+	memset((void*)&ref,0,sizeof(erlang_ref_ex_t));
+
 	/* start from first arg */
 	request->index = 0;
 	ei_decode_version(request->buff, &request->index, &version);

+ 4 - 0
src/modules/erlang/handle_rpc.c

@@ -1138,6 +1138,8 @@ static int get_int(int *int_ptr,erl_rpc_ctx_t *ctx, int reads, int autoconvert)
 			return -1;
 		}
 
+		ei_decode_string(ctx->request->buff, &ctx->request_index, p);
+
 		*int_ptr = strtol(p,&endptr,10);
 		if (p == endptr)
 		{
@@ -1217,6 +1219,8 @@ static int get_double(double *double_prt,erl_rpc_ctx_t *ctx, int reads, int auto
 			return -1;
 		}
 
+		ei_decode_string(ctx->request->buff, &ctx->request_index, p);
+
 		*double_prt = strtod(p,&endptr);
 		if (p == endptr)
 		{