[PATCH] ostree-pull: Fix segfault by initializing pull_data earlier



In the case of not being able to check the repository or not being able
to parse command line arguments, attributes from "pull_data" would be used
with garbage in them. This patch makes initialization of the sctructure to
happen earlier so it is safe to use in those cases.
---
 src/ostree/ostree-pull.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/ostree/ostree-pull.c b/src/ostree/ostree-pull.c
index 976f36a..00c63af 100644
--- a/src/ostree/ostree-pull.c
+++ b/src/ostree/ostree-pull.c
@@ -1087,6 +1087,8 @@ ostree_builtin_pull (int argc, char **argv, GFile *repo_path, GError **error)
   GKeyFile *config = NULL;
   char **configured_branches = NULL;
 
+  memset (pull_data, 0, sizeof (*pull_data));
+
   context = g_option_context_new ("REMOTE [BRANCH...] - Download data from remote repository");
   g_option_context_add_main_entries (context, options, NULL);
 
@@ -1097,7 +1099,6 @@ ostree_builtin_pull (int argc, char **argv, GFile *repo_path, GError **error)
   if (!ostree_repo_check (repo, error))
     goto out;
 
-  memset (pull_data, 0, sizeof (*pull_data));
   pull_data->repo = repo;
   pull_data->file_checksums_to_fetch = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
 
-- 
1.7.10.1



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]