TSG-15568: 获取server subscriber ID时判断条件错误导致段错误

This commit is contained in:
liuxueli
2023-06-14 20:25:07 +08:00
parent c77480e159
commit 1680dcede1
2 changed files with 22 additions and 1 deletions

View File

@@ -468,7 +468,7 @@ const char *srt_attribute_get_client_subscriber_id(const struct session_runtime_
} }
const char *srt_attribute_get_server_subscriber_id(const struct session_runtime_attribute *srt_attribute) const char *srt_attribute_get_server_subscriber_id(const struct session_runtime_attribute *srt_attribute)
{ {
if(srt_attribute!=NULL && srt_attribute->client_subscribe_id!=NULL) if(srt_attribute!=NULL && srt_attribute->server_subscribe_id!=NULL)
{ {
return (const char *)(srt_attribute->server_subscribe_id->subscribe_id); return (const char *)(srt_attribute->server_subscribe_id->subscribe_id);
} }

View File

@@ -846,6 +846,27 @@ TEST(TSGBridge, SessionSessionRuntimeAttributeTSG15457)
EXPECT_EQ(nullptr, session_runtime_attribute_get(&a_stream)); EXPECT_EQ(nullptr, session_runtime_attribute_get(&a_stream));
} }
TEST(TSGBridge, SessionSessionRuntimeAttributeSubscriberIDTSG15568)
{
const struct streaminfo a_stream = {0};
struct session_runtime_attribute *srt_attribute = (struct session_runtime_attribute *)session_runtime_attribute_new(&a_stream);
srt_attribute->client_subscribe_id=(struct subscribe_id_info *)dictator_malloc(0, sizeof(struct subscribe_id_info));
srt_attribute->client_subscribe_id->ref_cnt=1;
srt_attribute->client_subscribe_id->subscribe_id=(char *)"zhansan";
struct session_runtime_attribute *srt_attribute_out=(struct session_runtime_attribute *)session_runtime_attribute_get(&a_stream);
EXPECT_NE(nullptr, srt_attribute_out);
EXPECT_NE(nullptr, srt_attribute_out->client_subscribe_id);
EXPECT_EQ(1, srt_attribute_out->client_subscribe_id->ref_cnt);
EXPECT_STREQ("zhansan", srt_attribute_out->client_subscribe_id->subscribe_id);
EXPECT_STREQ("zhansan", srt_attribute_get_client_subscriber_id((const struct session_runtime_attribute *)srt_attribute_out));
EXPECT_EQ(nullptr, srt_attribute_out->server_subscribe_id);
EXPECT_EQ(nullptr, srt_attribute_get_server_subscriber_id((const struct session_runtime_attribute *)srt_attribute_out));
}
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
int ret=tsg_bridge_init("tsgconf/main.conf"); int ret=tsg_bridge_init("tsgconf/main.conf");