|
|
|
@ -1,3 +1,16 @@
|
|
|
|
|
|
|
|
From: Sipwise Development Team <support@sipwise.com>
|
|
|
|
|
|
|
|
Date: Fri, 6 Mar 2026 10:21:54 +0100
|
|
|
|
|
|
|
|
Subject: db_redis_protect_length_overflow
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
src/modules/db_redis/db_redis_mod.c | 2 ++
|
|
|
|
|
|
|
|
src/modules/db_redis/redis_dbase.c | 7 +++----
|
|
|
|
|
|
|
|
src/modules/db_redis/redis_table.c | 33 ++++++++++++++++++++++++++++-----
|
|
|
|
|
|
|
|
src/modules/db_redis/redis_table.h | 4 ++--
|
|
|
|
|
|
|
|
4 files changed, 35 insertions(+), 11 deletions(-)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/modules/db_redis/db_redis_mod.c b/src/modules/db_redis/db_redis_mod.c
|
|
|
|
|
|
|
|
index 11c7b8c..fafafbb 100644
|
|
|
|
--- a/src/modules/db_redis/db_redis_mod.c
|
|
|
|
--- a/src/modules/db_redis/db_redis_mod.c
|
|
|
|
+++ b/src/modules/db_redis/db_redis_mod.c
|
|
|
|
+++ b/src/modules/db_redis/db_redis_mod.c
|
|
|
|
@@ -42,6 +42,7 @@ MODULE_VERSION
|
|
|
|
@@ -42,6 +42,7 @@ MODULE_VERSION
|
|
|
|
@ -16,9 +29,11 @@
|
|
|
|
#ifdef WITH_SSL
|
|
|
|
#ifdef WITH_SSL
|
|
|
|
{"opt_tls", PARAM_INT, &db_redis_opt_tls},
|
|
|
|
{"opt_tls", PARAM_INT, &db_redis_opt_tls},
|
|
|
|
{"ca_path", PARAM_STRING, &db_redis_ca_path},
|
|
|
|
{"ca_path", PARAM_STRING, &db_redis_ca_path},
|
|
|
|
|
|
|
|
diff --git a/src/modules/db_redis/redis_dbase.c b/src/modules/db_redis/redis_dbase.c
|
|
|
|
|
|
|
|
index b98f401..6725bf5 100644
|
|
|
|
--- a/src/modules/db_redis/redis_dbase.c
|
|
|
|
--- a/src/modules/db_redis/redis_dbase.c
|
|
|
|
+++ b/src/modules/db_redis/redis_dbase.c
|
|
|
|
+++ b/src/modules/db_redis/redis_dbase.c
|
|
|
|
@@ -876,7 +876,7 @@ static int db_redis_scan_query_keys_patt
|
|
|
|
@@ -876,7 +876,7 @@ static int db_redis_scan_query_keys_pattern(km_redis_con_t *con,
|
|
|
|
LM_ERR("Failed to add scan command to scan query\n");
|
|
|
|
LM_ERR("Failed to add scan command to scan query\n");
|
|
|
|
goto err;
|
|
|
|
goto err;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -27,7 +42,7 @@
|
|
|
|
!= 0) {
|
|
|
|
!= 0) {
|
|
|
|
LM_ERR("Failed to add scan command to scan query\n");
|
|
|
|
LM_ERR("Failed to add scan command to scan query\n");
|
|
|
|
goto err;
|
|
|
|
goto err;
|
|
|
|
@@ -891,8 +891,7 @@ static int db_redis_scan_query_keys_patt
|
|
|
|
@@ -891,8 +891,7 @@ static int db_redis_scan_query_keys_pattern(km_redis_con_t *con,
|
|
|
|
LM_ERR("Failed to add match command to scan query\n");
|
|
|
|
LM_ERR("Failed to add match command to scan query\n");
|
|
|
|
goto err;
|
|
|
|
goto err;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -37,7 +52,7 @@
|
|
|
|
!= 0) {
|
|
|
|
!= 0) {
|
|
|
|
LM_ERR("Failed to add match pattern to scan query\n");
|
|
|
|
LM_ERR("Failed to add match pattern to scan query\n");
|
|
|
|
goto err;
|
|
|
|
goto err;
|
|
|
|
@@ -907,7 +906,7 @@ static int db_redis_scan_query_keys_patt
|
|
|
|
@@ -907,7 +906,7 @@ static int db_redis_scan_query_keys_pattern(km_redis_con_t *con,
|
|
|
|
LM_ERR("Failed to print integer for scan query\n");
|
|
|
|
LM_ERR("Failed to print integer for scan query\n");
|
|
|
|
goto err;
|
|
|
|
goto err;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -46,6 +61,8 @@
|
|
|
|
LM_ERR("Failed to add count value to scan query\n");
|
|
|
|
LM_ERR("Failed to add count value to scan query\n");
|
|
|
|
goto err;
|
|
|
|
goto err;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
diff --git a/src/modules/db_redis/redis_table.c b/src/modules/db_redis/redis_table.c
|
|
|
|
|
|
|
|
index af3700d..2100884 100644
|
|
|
|
--- a/src/modules/db_redis/redis_table.c
|
|
|
|
--- a/src/modules/db_redis/redis_table.c
|
|
|
|
+++ b/src/modules/db_redis/redis_table.c
|
|
|
|
+++ b/src/modules/db_redis/redis_table.c
|
|
|
|
@@ -24,14 +24,24 @@
|
|
|
|
@@ -24,14 +24,24 @@
|
|
|
|
@ -105,9 +122,11 @@
|
|
|
|
k = (redis_key_t *)pkg_malloc(sizeof(redis_key_t));
|
|
|
|
k = (redis_key_t *)pkg_malloc(sizeof(redis_key_t));
|
|
|
|
if(!k) {
|
|
|
|
if(!k) {
|
|
|
|
LM_ERR("Failed to allocate memory for key list entry\n");
|
|
|
|
LM_ERR("Failed to allocate memory for key list entry\n");
|
|
|
|
|
|
|
|
diff --git a/src/modules/db_redis/redis_table.h b/src/modules/db_redis/redis_table.h
|
|
|
|
|
|
|
|
index 6ba4e8c..879b50c 100644
|
|
|
|
--- a/src/modules/db_redis/redis_table.h
|
|
|
|
--- a/src/modules/db_redis/redis_table.h
|
|
|
|
+++ b/src/modules/db_redis/redis_table.h
|
|
|
|
+++ b/src/modules/db_redis/redis_table.h
|
|
|
|
@@ -61,9 +61,9 @@ void db_redis_free_tables(km_redis_con_t
|
|
|
|
@@ -61,9 +61,9 @@ void db_redis_free_tables(km_redis_con_t *con);
|
|
|
|
int db_redis_parse_schema(km_redis_con_t *con);
|
|
|
|
int db_redis_parse_schema(km_redis_con_t *con);
|
|
|
|
int db_redis_parse_keys(km_redis_con_t *con);
|
|
|
|
int db_redis_parse_keys(km_redis_con_t *con);
|
|
|
|
|
|
|
|
|
|
|
|
|