Prevent buffer overflow of signal agent 91/184091/1
authorSangyoon Jang <jeremy.jang@samsung.com>
Fri, 13 Jul 2018 07:21:27 +0000 (16:21 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Fri, 13 Jul 2018 11:43:10 +0000 (11:43 +0000)
Change-Id: Ic55d8f5471e2963c7cf6fcc1d09dd166a5accae6
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
(cherry picked from commit 1cb4027d02463550eaa89ba449bc2ce3d2cde759)

installer/pkgmgr_installer_signal_agent.c

index 9d5ebd9..2e1b46c 100644 (file)
@@ -225,6 +225,12 @@ static gboolean __handle_signal(gint fd, GIOCondition cond, gpointer user_data)
        memcpy(&type_len, buf, sizeof(size_t));
        memcpy(&data_len, buf + sizeof(size_t), sizeof(gsize));
 
+       if ((type_len + data_len) > BUFMAX) {
+               LOGE("received size is too large: %zu %zd", type_len, data_len);
+               close(clifd);
+               return FALSE;
+       }
+
        r = recv(clifd, buf, type_len + data_len, 0);
        if (r < 0) {
                LOGE("recv failed: %d", errno);