daemon: Fix possible double-free 38/305238/1
authorSangchul Lee <sc11.lee@samsung.com>
Thu, 25 Jan 2024 03:43:40 +0000 (12:43 +0900)
committerSangchul Lee <sc11.lee@samsung.com>
Tue, 30 Jan 2024 08:27:18 +0000 (08:27 +0000)
[Version] 0.3.17

Change-Id: Ie0c167440420f136c2b63dc933ed05dc20ac284b
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
(cherry picked from commit 4d723083370a344bf4c4f72d95e317b95a2f200d)

packaging/espp-service.spec
src/daemon/espp_service_socket.c

index fa38090282787b5431c40c967c0e9679c3ef6c9e..98579606f7dd2836fb5cdc2d52915a9cab0d157b 100644 (file)
@@ -1,6 +1,6 @@
 Name:       espp-service
 Summary:    ESPP service package which contains client lib. and daemon binary
-Version:    0.3.16
+Version:    0.3.17
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
index e6b240401ddcdb40c42bf8bd86a218ae2ab1a12b..3deed186ef102c3500355143a470e46ebb96328b 100644 (file)
@@ -240,6 +240,7 @@ static void *__listen_thread_func(void *data)
 
                if (pthread_create(&work_thread_id, &attr, (void *)__work_thread_func, (void *)userdata)) {
                        LOG_ERROR("failed to pthread_create(), client_fd[%d]", client_fd);
+                       g_free(userdata);
                        goto exit;
                }
        }
@@ -248,9 +249,6 @@ exit:
        if (client_fd >= 0)
                close(client_fd);
 
-       if (userdata)
-               g_free(userdata);
-
        LOG_DEBUG("pthread_exit()");
        pthread_attr_destroy(&attr);
        pthread_exit(NULL);