webrtc_test: Add missing initializing variables after free() 98/263298/2 accepted/tizen/unified/20210901.103723 submit/tizen/20210901.024939
authorSangchul Lee <sc11.lee@samsung.com>
Tue, 31 Aug 2021 05:43:29 +0000 (14:43 +0900)
committerSangchul Lee <sc11.lee@samsung.com>
Tue, 31 Aug 2021 05:52:28 +0000 (14:52 +0900)
It caused a double-free crash when negotiating again with new handle
even if the 'd'(destroy) menu was executed for the previous handle
without program exit.

[Version] 0.2.90
[Issue Type] Bug fix

Change-Id: I48df929d6744d434f23f7d550d692e92b0b61609
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
packaging/capi-media-webrtc.spec
test/webrtc_test.c

index 7b098fb478cc1b416ea3d74e55a06aff4486940b..3724909960fe83e9cbb6c963b33fe2bd968e6a8b 100644 (file)
@@ -1,6 +1,6 @@
 Name:       capi-media-webrtc
 Summary:    A WebRTC library in Tizen Native API
-Version:    0.2.89
+Version:    0.2.90
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index 5f225e0ba3ba7775fc82bf00f0918dd7ed89e7d8..c38e9175a79edd5edacb5edd1b4d575575b3e24c 100644 (file)
@@ -444,13 +444,20 @@ static void _webrtc_destroy(int index)
        g_print("webrtc[%p, index:%d] is destroyed\n", g_conns[index].webrtc, index);
 
        g_conns[index].webrtc = NULL;
-       if (g_conns[index].offer)
+       if (g_conns[index].offer) {
                free(g_conns[index].offer);
-       if (g_conns[index].answer)
+               g_conns[index].offer = NULL;
+       }
+       if (g_conns[index].answer) {
                free(g_conns[index].answer);
-       if (g_conns[index].remote_desc)
+               g_conns[index].answer = NULL;
+       }
+       if (g_conns[index].remote_desc) {
                free(g_conns[index].remote_desc);
+               g_conns[index].remote_desc = NULL;
+       }
        g_list_free_full(g_conns[index].ice_candidates, free);
+       g_conns[index].ice_candidates = NULL;
 
        for (i = 0; i < MAX_CHANNEL_LEN; i++) {
                if (g_conns[index].channels[i] != NULL)