diff options
| author | liuxueli <[email protected]> | 2023-06-14 20:25:07 +0800 |
|---|---|---|
| committer | liuxueli <[email protected]> | 2023-06-14 20:25:07 +0800 |
| commit | 1680dcede1b89aaac81faf52a7b85cdfe614f80d (patch) | |
| tree | 760d59755b3e889b3c3e95c8344bb2799b5bf58f | |
| parent | c77480e1596a3d7e0d01bd08569d5e27adbb2ab2 (diff) | |
TSG-15568: 获取server subscriber ID时判断条件错误导致段错误
| -rw-r--r-- | src/tsg_bridge.cpp | 2 | ||||
| -rw-r--r-- | test/src/gtest_bridge.cpp | 21 |
2 files changed, 22 insertions, 1 deletions
diff --git a/src/tsg_bridge.cpp b/src/tsg_bridge.cpp index 3340008..d8c0d16 100644 --- a/src/tsg_bridge.cpp +++ b/src/tsg_bridge.cpp @@ -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) { - 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); } diff --git a/test/src/gtest_bridge.cpp b/test/src/gtest_bridge.cpp index b839e13..562d172 100644 --- a/test/src/gtest_bridge.cpp +++ b/test/src/gtest_bridge.cpp @@ -846,6 +846,27 @@ TEST(TSGBridge, SessionSessionRuntimeAttributeTSG15457) 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 ret=tsg_bridge_init("tsgconf/main.conf"); |
