From: Wootak Jung Date: Thu, 31 Mar 2022 01:55:52 +0000 (+0900) Subject: Add the logic to prevent twice allocation X-Git-Tag: accepted/tizen/unified/20220914.164046~31 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=805401831bafb056de4a6ea155fe4f0899e20c1b;p=platform%2Fcore%2Fapi%2Fthread.git Add the logic to prevent twice allocation modify unit test Change-Id: I740299e058c0488fe869ecd182b53c349326d1f0 Signed-off-by: hyunuk.tak --- diff --git a/src/thread-srp.c b/src/thread-srp.c index 33f7253..c8da03d 100644 --- a/src/thread-srp.c +++ b/src/thread-srp.c @@ -236,6 +236,7 @@ int thread_srp_server_get_registered_service(thread_instance_h instance, char buffer[THREAD_MAX_BUFFER_SIZE]; char *ptr, *last; char service_name_buf[THREAD_MAX_BUFFER_SIZE] = ""; + char address_buf[THREAD_IPV6_ADDRESS_LEN] = ""; /* SRP server service */ const char *msg = THREAD_SRP_SERVER_SERVICE_CMD; @@ -281,7 +282,10 @@ int thread_srp_server_get_registered_service(thread_instance_h instance, strncpy(port_buf, &ptr[10], strlen(ptr) - 11); *port = atoi(port_buf); } else if (strncmp(ptr, " addresses: [", 16) == 0) { - char address_buf[THREAD_IPV6_ADDRESS_LEN] = ""; + if (strlen(address_buf) > 0) { + THREAD_DBG("already got the address"); + break; + } strncpy(address_buf, &ptr[16], strlen(ptr) - 18); *address = g_strdup(address_buf); } else if (strncmp(ptr, "Done", 4) == 0) { diff --git a/tests/unittest/thread-unittest-srp.cpp b/tests/unittest/thread-unittest-srp.cpp index 618f90d..991ccc5 100644 --- a/tests/unittest/thread-unittest-srp.cpp +++ b/tests/unittest/thread-unittest-srp.cpp @@ -193,8 +193,7 @@ TEST_F(ThreadSrpTest, ServerGetRegisteredServiceInvalidParameter) TEST_F(ThreadSrpTest, ServerGetRegisteredServiceErrorNone) { EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance)); - // TODO - EXPECT_EQ(THREAD_ERROR_NOT_SUPPORTED, + EXPECT_EQ(THREAD_ERROR_NONE, thread_srp_server_get_registered_service(instance, &serviceName, &address, &port, &isDeleted)); -} \ No newline at end of file +}