Fix memory leaks in obex
authorSteve Grubb <sgrubb@redhat.com>
Sat, 15 May 2021 13:43:07 +0000 (09:43 -0400)
committerAyush Garg <ayush.garg@samsung.com>
Fri, 11 Mar 2022 13:38:35 +0000 (19:08 +0530)
This patch fixes a couple memory leaks.

In filesystem, g_file_get_contents allocates fresh memory to buf.
It needs to be freed after conversion to a GString object.

Destination was missed on an error path as is mld.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
obexd/plugins/ftp.c
obexd/plugins/messages-dummy.c

index 9efee04..f5b6c74 100755 (executable)
@@ -442,8 +442,10 @@ static int ftp_copy(struct ftp_session *ftp, const char *name,
        ret = verify_path(destdir);
        g_free(destdir);
 
-       if (ret < 0)
+       if (ret < 0) {
+               g_free(destination);
                return ret;
+       }
 
        source = g_build_filename(ftp->folder, name, NULL);
 
@@ -480,8 +482,10 @@ static int ftp_move(struct ftp_session *ftp, const char *name,
        ret = verify_path(destdir);
        g_free(destdir);
 
-       if (ret < 0)
+       if (ret < 0) {
+               g_free(destination);
                return ret;
+       }
 
        source = g_build_filename(ftp->folder, name, NULL);
 
index 34199fa..e37b52d 100755 (executable)
@@ -488,6 +488,7 @@ int messages_get_messages_listing(void *session, const char *name,
                        int err = -errno;
                        DBG("fopen(): %d, %s", -err, strerror(-err));
                        g_free(path);
+                       g_free(mld);
                        return -EBADR;
                }
        }