|
@@ -185,7 +185,7 @@ static int tps_htable_insert_initial_method_branch(
|
|
}
|
|
}
|
|
|
|
|
|
if(ret < 0 || ret >= TPS_HTABLE_SIZE_VAL) {
|
|
if(ret < 0 || ret >= TPS_HTABLE_SIZE_VAL) {
|
|
- LM_ERR("failed to build htable value\n");
|
|
|
|
|
|
+ LM_ERR("failed to build htable val\n");
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -758,7 +758,7 @@ static int tps_htable_insert_dialog_helper(tps_data_t *td, int set_expire)
|
|
td->a_uuid.len, td->a_uuid.s)
|
|
td->a_uuid.len, td->a_uuid.s)
|
|
: snprintf(ptr, TPS_HTABLE_SIZE_KEY, "%.*s",
|
|
: snprintf(ptr, TPS_HTABLE_SIZE_KEY, "%.*s",
|
|
td->b_uuid.len, td->b_uuid.s);
|
|
td->b_uuid.len, td->b_uuid.s);
|
|
- if(ret < 0) {
|
|
|
|
|
|
+ if(ret < 0 || ret >= TPS_HTABLE_SIZE_KEY) {
|
|
LM_ERR("failed to build htable key\n");
|
|
LM_ERR("failed to build htable key\n");
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
@@ -771,6 +771,11 @@ static int tps_htable_insert_dialog_helper(tps_data_t *td, int set_expire)
|
|
ret = snprintf(ptr, TPS_HTABLE_SIZE_KEY, "%s", _tps_base64_buf[0]);
|
|
ret = snprintf(ptr, TPS_HTABLE_SIZE_KEY, "%s", _tps_base64_buf[0]);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if(ret < 0 || ret >= TPS_HTABLE_SIZE_KEY) {
|
|
|
|
+ LM_ERR("failed to build htable key\n");
|
|
|
|
+ return -1;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
// build val
|
|
// build val
|
|
rectime = (unsigned long)time(NULL);
|
|
rectime = (unsigned long)time(NULL);
|
|
@@ -849,7 +854,7 @@ static int tps_htable_insert_dialog_helper(tps_data_t *td, int set_expire)
|
|
td->x_context.s);
|
|
td->x_context.s);
|
|
}
|
|
}
|
|
|
|
|
|
- if(ret < 0) {
|
|
|
|
|
|
+ if(ret < 0 || ret >= TPS_HTABLE_SIZE_VAL) {
|
|
LM_ERR("failed to build htable val\n");
|
|
LM_ERR("failed to build htable val\n");
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
@@ -919,7 +924,7 @@ int tps_htable_load_dialog(sip_msg_t *msg, tps_data_t *md, tps_data_t *sd)
|
|
md->a_uuid.len, md->a_uuid.s)
|
|
md->a_uuid.len, md->a_uuid.s)
|
|
: snprintf(ptr, TPS_HTABLE_SIZE_KEY, "%.*s",
|
|
: snprintf(ptr, TPS_HTABLE_SIZE_KEY, "%.*s",
|
|
md->b_uuid.len, md->b_uuid.s);
|
|
md->b_uuid.len, md->b_uuid.s);
|
|
- if(ret < 0) {
|
|
|
|
|
|
+ if(ret < 0 || ret >= TPS_HTABLE_SIZE_KEY) {
|
|
LM_ERR("failed to build htable key\n");
|
|
LM_ERR("failed to build htable key\n");
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
@@ -931,6 +936,10 @@ int tps_htable_load_dialog(sip_msg_t *msg, tps_data_t *md, tps_data_t *sd)
|
|
_tps_base64_buf[0], TPS_BASE64_SIZE - 1);
|
|
_tps_base64_buf[0], TPS_BASE64_SIZE - 1);
|
|
ret = snprintf(ptr, TPS_HTABLE_SIZE_KEY, "%s", _tps_base64_buf[0]);
|
|
ret = snprintf(ptr, TPS_HTABLE_SIZE_KEY, "%s", _tps_base64_buf[0]);
|
|
}
|
|
}
|
|
|
|
+ if(ret < 0 || ret >= TPS_HTABLE_SIZE_KEY) {
|
|
|
|
+ LM_ERR("failed to build htable key\n");
|
|
|
|
+ return -1;
|
|
|
|
+ }
|
|
|
|
|
|
hkey.s = _tps_htable_key_buf;
|
|
hkey.s = _tps_htable_key_buf;
|
|
hkey.len = strlen(_tps_htable_key_buf);
|
|
hkey.len = strlen(_tps_htable_key_buf);
|
|
@@ -1190,7 +1199,7 @@ int tps_htable_end_dialog(sip_msg_t *msg, tps_data_t *md, tps_data_t *sd)
|
|
sd->a_uuid.len, sd->a_uuid.s)
|
|
sd->a_uuid.len, sd->a_uuid.s)
|
|
: snprintf(ptr, TPS_HTABLE_SIZE_KEY, "%.*s",
|
|
: snprintf(ptr, TPS_HTABLE_SIZE_KEY, "%.*s",
|
|
sd->b_uuid.len, sd->b_uuid.s);
|
|
sd->b_uuid.len, sd->b_uuid.s);
|
|
- if(ret < 0) {
|
|
|
|
|
|
+ if(ret < 0 || ret >= TPS_HTABLE_SIZE_KEY) {
|
|
LM_ERR("failed to build htable key\n");
|
|
LM_ERR("failed to build htable key\n");
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
@@ -1202,6 +1211,10 @@ int tps_htable_end_dialog(sip_msg_t *msg, tps_data_t *md, tps_data_t *sd)
|
|
_tps_base64_buf[0], TPS_BASE64_SIZE - 1);
|
|
_tps_base64_buf[0], TPS_BASE64_SIZE - 1);
|
|
ret = snprintf(ptr, TPS_HTABLE_SIZE_KEY, "%s", _tps_base64_buf[0]);
|
|
ret = snprintf(ptr, TPS_HTABLE_SIZE_KEY, "%s", _tps_base64_buf[0]);
|
|
}
|
|
}
|
|
|
|
+ if(ret < 0 || ret >= TPS_HTABLE_SIZE_KEY) {
|
|
|
|
+ LM_ERR("failed to build htable key\n");
|
|
|
|
+ return -1;
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
// dialog ended -- keep it for branch lifetime only
|
|
// dialog ended -- keep it for branch lifetime only
|