소스 검색

ndb_redis: use safer macros for temporarily making zero-ending strings

Daniel-Constantin Mierla 5 년 전
부모
커밋
d815a2c92e
1개의 변경된 파일41개의 추가작업 그리고 53개의 파일을 삭제
  1. 41 53
      src/modules/ndb_redis/ndb_redis_mod.c

+ 41 - 53
src/modules/ndb_redis/ndb_redis_mod.c

@@ -244,13 +244,12 @@ static int w_redis_cmd4(struct sip_msg* msg, char* ssrv, char* scmd,
 		return -1;
 		return -1;
 	}
 	}
 
 
-	c1 = arg1.s[arg1.len];
-	arg1.s[arg1.len] = '\0';
+	STR_VTOZ(arg1.s[arg1.len], c1);
 	if(redisc_exec(&s[0], &s[2], &s[1], arg1.s)<0) {
 	if(redisc_exec(&s[0], &s[2], &s[1], arg1.s)<0) {
-		arg1.s[arg1.len] = c1;
+		STR_ZTOV(arg1.s[arg1.len], c1);
 		return -1;
 		return -1;
 	}
 	}
-	arg1.s[arg1.len] = c1;
+	STR_ZTOV(arg1.s[arg1.len], c1);
 	return 1;
 	return 1;
 }
 }
 
 
@@ -290,17 +289,15 @@ static int w_redis_cmd5(struct sip_msg* msg, char* ssrv, char* scmd,
 		return -1;
 		return -1;
 	}
 	}
 
 
-	c1 = arg1.s[arg1.len];
-	c2 = arg2.s[arg2.len];
-	arg1.s[arg1.len] = '\0';
-	arg2.s[arg2.len] = '\0';
+	STR_VTOZ(arg1.s[arg1.len], c1);
+	STR_VTOZ(arg2.s[arg2.len], c2);
 	if(redisc_exec(&s[0], &s[2], &s[1], arg1.s, arg2.s)<0) {
 	if(redisc_exec(&s[0], &s[2], &s[1], arg1.s, arg2.s)<0) {
-		arg1.s[arg1.len] = c1;
-		arg2.s[arg2.len] = c2;
+		STR_ZTOV(arg1.s[arg1.len], c1);
+		STR_ZTOV(arg2.s[arg2.len], c2);
 		return -1;
 		return -1;
 	}
 	}
-	arg1.s[arg1.len] = c1;
-	arg2.s[arg2.len] = c2;
+	STR_ZTOV(arg1.s[arg1.len], c1);
+	STR_ZTOV(arg2.s[arg2.len], c2);
 	return 1;
 	return 1;
 }
 }
 
 
@@ -345,21 +342,18 @@ static int w_redis_cmd6(struct sip_msg* msg, char* ssrv, char* scmd,
 		return -1;
 		return -1;
 	}
 	}
 
 
-	c1 = arg1.s[arg1.len];
-	c2 = arg2.s[arg2.len];
-	c3 = arg3.s[arg3.len];
-	arg1.s[arg1.len] = '\0';
-	arg2.s[arg2.len] = '\0';
-	arg3.s[arg3.len] = '\0';
+	STR_VTOZ(arg1.s[arg1.len], c1);
+	STR_VTOZ(arg2.s[arg2.len], c2);
+	STR_VTOZ(arg3.s[arg3.len], c3);
 	if(redisc_exec(&s[0], &s[2], &s[1], arg1.s, arg2.s, arg3.s)<0) {
 	if(redisc_exec(&s[0], &s[2], &s[1], arg1.s, arg2.s, arg3.s)<0) {
-		arg1.s[arg1.len] = c1;
-		arg2.s[arg2.len] = c2;
-		arg3.s[arg3.len] = c3;
+		STR_ZTOV(arg1.s[arg1.len], c1);
+		STR_ZTOV(arg2.s[arg2.len], c2);
+		STR_ZTOV(arg3.s[arg3.len], c3);
 		return -1;
 		return -1;
 	}
 	}
-	arg1.s[arg1.len] = c1;
-	arg2.s[arg2.len] = c2;
-	arg3.s[arg3.len] = c3;
+	STR_ZTOV(arg1.s[arg1.len], c1);
+	STR_ZTOV(arg2.s[arg2.len], c2);
+	STR_ZTOV(arg3.s[arg3.len], c3);
 	return 1;
 	return 1;
 }
 }
 
 
@@ -370,7 +364,7 @@ static int w_redis_pipe_cmd3(struct sip_msg* msg, char* ssrv, char* scmd, char*
 {
 {
 	str s[3];
 	str s[3];
 
 
-	if (redis_cluster_param) 
+	if (redis_cluster_param)
 	{
 	{
 		LM_ERR("Pipelining is not supported if cluster parameter is enabled\n");
 		LM_ERR("Pipelining is not supported if cluster parameter is enabled\n");
 		return -1;
 		return -1;
@@ -406,7 +400,7 @@ static int w_redis_pipe_cmd4(struct sip_msg* msg, char* ssrv, char* scmd,
 	str arg1;
 	str arg1;
 	char c1;
 	char c1;
 
 
-	if (redis_cluster_param) 
+	if (redis_cluster_param)
 	{
 	{
 		LM_ERR("Pipelining is not supported if cluster parameter is enabled\n");
 		LM_ERR("Pipelining is not supported if cluster parameter is enabled\n");
 		return -1;
 		return -1;
@@ -432,13 +426,12 @@ static int w_redis_pipe_cmd4(struct sip_msg* msg, char* ssrv, char* scmd,
 		return -1;
 		return -1;
 	}
 	}
 
 
-	c1 = arg1.s[arg1.len];
-	arg1.s[arg1.len] = '\0';
+	STR_VTOZ(arg1.s[arg1.len], c1);
 	if(redisc_append_cmd(&s[0], &s[2], &s[1], arg1.s)<0) {
 	if(redisc_append_cmd(&s[0], &s[2], &s[1], arg1.s)<0) {
-		arg1.s[arg1.len] = c1;
+		STR_ZTOV(arg1.s[arg1.len], c1);
 		return -1;
 		return -1;
 	}
 	}
-	arg1.s[arg1.len] = c1;
+	STR_ZTOV(arg1.s[arg1.len], c1);
 	return 1;
 	return 1;
 }
 }
 
 
@@ -452,7 +445,7 @@ static int w_redis_pipe_cmd5(struct sip_msg* msg, char* ssrv, char* scmd,
 	str arg1, arg2;
 	str arg1, arg2;
 	char c1, c2;
 	char c1, c2;
 
 
-	if (redis_cluster_param) 
+	if (redis_cluster_param)
 	{
 	{
 		LM_ERR("Pipelining is not supported if cluster parameter is enabled\n");
 		LM_ERR("Pipelining is not supported if cluster parameter is enabled\n");
 		return -1;
 		return -1;
@@ -483,17 +476,15 @@ static int w_redis_pipe_cmd5(struct sip_msg* msg, char* ssrv, char* scmd,
 		return -1;
 		return -1;
 	}
 	}
 
 
-	c1 = arg1.s[arg1.len];
-	c2 = arg2.s[arg2.len];
-	arg1.s[arg1.len] = '\0';
-	arg2.s[arg2.len] = '\0';
+	STR_VTOZ(arg1.s[arg1.len], c1);
+	STR_VTOZ(arg2.s[arg2.len], c2);
 	if(redisc_append_cmd(&s[0], &s[2], &s[1], arg1.s, arg2.s)<0) {
 	if(redisc_append_cmd(&s[0], &s[2], &s[1], arg1.s, arg2.s)<0) {
-		arg1.s[arg1.len] = c1;
-		arg2.s[arg2.len] = c2;
+		STR_ZTOV(arg1.s[arg1.len], c1);
+		STR_ZTOV(arg2.s[arg2.len], c2);
 		return -1;
 		return -1;
 	}
 	}
-	arg1.s[arg1.len] = c1;
-	arg2.s[arg2.len] = c2;
+	STR_ZTOV(arg1.s[arg1.len], c1);
+	STR_ZTOV(arg2.s[arg2.len], c2);
 	return 1;
 	return 1;
 }
 }
 
 
@@ -507,7 +498,7 @@ static int w_redis_pipe_cmd6(struct sip_msg* msg, char* ssrv, char* scmd,
 	str arg1, arg2, arg3;
 	str arg1, arg2, arg3;
 	char c1, c2, c3;
 	char c1, c2, c3;
 
 
-	if (redis_cluster_param) 
+	if (redis_cluster_param)
 	{
 	{
 		LM_ERR("Pipelining is not supported if cluster parameter is enabled\n");
 		LM_ERR("Pipelining is not supported if cluster parameter is enabled\n");
 		return -1;
 		return -1;
@@ -543,21 +534,18 @@ static int w_redis_pipe_cmd6(struct sip_msg* msg, char* ssrv, char* scmd,
 		return -1;
 		return -1;
 	}
 	}
 
 
-	c1 = arg1.s[arg1.len];
-	c2 = arg2.s[arg2.len];
-	c3 = arg3.s[arg3.len];
-	arg1.s[arg1.len] = '\0';
-	arg2.s[arg2.len] = '\0';
-	arg3.s[arg3.len] = '\0';
+	STR_VTOZ(arg1.s[arg1.len], c1);
+	STR_VTOZ(arg2.s[arg2.len], c2);
+	STR_VTOZ(arg3.s[arg3.len], c3);
 	if(redisc_append_cmd(&s[0], &s[2], &s[1], arg1.s, arg2.s, arg3.s)<0) {
 	if(redisc_append_cmd(&s[0], &s[2], &s[1], arg1.s, arg2.s, arg3.s)<0) {
-		arg1.s[arg1.len] = c1;
-		arg2.s[arg2.len] = c2;
-		arg3.s[arg3.len] = c3;
+		STR_ZTOV(arg1.s[arg1.len], c1);
+		STR_ZTOV(arg2.s[arg2.len], c2);
+		STR_ZTOV(arg3.s[arg3.len], c3);
 		return -1;
 		return -1;
 	}
 	}
-	arg1.s[arg1.len] = c1;
-	arg2.s[arg2.len] = c2;
-	arg3.s[arg3.len] = c3;
+	STR_ZTOV(arg1.s[arg1.len], c1);
+	STR_ZTOV(arg2.s[arg2.len], c2);
+	STR_ZTOV(arg3.s[arg3.len], c3);
 	return 1;
 	return 1;
 }
 }
 
 
@@ -569,7 +557,7 @@ static int w_redis_execute(struct sip_msg* msg, char* ssrv)
 	str s;
 	str s;
 	int rv;
 	int rv;
 
 
-	if (redis_cluster_param) 
+	if (redis_cluster_param)
 	{
 	{
 		LM_ERR("Pipelining is not supported if cluster parameter is enabled\n");
 		LM_ERR("Pipelining is not supported if cluster parameter is enabled\n");
 		return -1;
 		return -1;