From ab08ec51e2c8ae2e5d36d0ff75382cbddb2a0407 Mon Sep 17 00:00:00 2001 From: cuihaikuo Date: Mon, 19 Jun 2017 16:24:16 +0800 Subject: [PATCH] Fix a bug that may cause a memory leak --- server/repo-mgr.c | 1 + server/repo-perm.c | 3 ++- server/seafile-session.c | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/server/repo-mgr.c b/server/repo-mgr.c index 4e1a508..7b6201d 100644 --- a/server/repo-mgr.c +++ b/server/repo-mgr.c @@ -2162,6 +2162,7 @@ seaf_repo_manager_get_repos_by_owner (SeafRepoManager *mgr, if (repo != NULL) ret = g_list_prepend (ret, repo); } + g_list_free_full (repo_list, (GDestroyNotify)seaf_repo_unref); return ret; } diff --git a/server/repo-perm.c b/server/repo-perm.c index 0bf449f..866759e 100644 --- a/server/repo-perm.c +++ b/server/repo-perm.c @@ -46,7 +46,7 @@ check_repo_share_permission (SeafRepoManager *mgr, CcnetGroup *group; int group_id; char *permission; - GString *sql = g_string_new (""); + GString *sql = NULL; permission = seaf_share_manager_check_permission (seaf->share_mgr, repo_id, @@ -68,6 +68,7 @@ check_repo_share_permission (SeafRepoManager *mgr, ccnet_rpc_client_free (rpc_client); + sql = g_string_new (""); g_string_printf (sql, "SELECT permission FROM RepoGroup WHERE repo_id = ? AND group_id IN ("); for (p1 = groups; p1 != NULL; p1 = p1->next) { group = p1->data; diff --git a/server/seafile-session.c b/server/seafile-session.c index 911640b..21b9c0c 100644 --- a/server/seafile-session.c +++ b/server/seafile-session.c @@ -363,6 +363,7 @@ copy_template_files_recursive (SeafileSession *session, } g_free (sub_path); } + g_dir_close (dir); } static void *