Git-Url:
http://git.frugalware.org/gitweb/gitweb.cgi?p=gfpm.git;a=commitdiff;h=0c0eb4395c05da7e6f9b47b37e1cb3923d37268f
commit 0c0eb4395c05da7e6f9b47b37e1cb3923d37268f
Author: Priyank <[EMAIL PROTECTED]>
Date: Thu Mar 6 12:10:42 2008 +0530
gfpm-repomgr: gfpm_repomgr_populate_repolist(): skip bad repos and prevent a
segfault
diff --git a/src/gfpm-repomanager.c b/src/gfpm-repomanager.c
index 029c381..6eede20 100644
--- a/src/gfpm-repomanager.c
+++ b/src/gfpm-repomanager.c
@@ -568,7 +568,7 @@ gfpm_repomgr_populate_repo_info (const char *path,
gfpm_repo_t *repo_r)
if ((tmp = fopen (path, "r")) == NULL)
{
- gchar *errorstr = g_strdup_printf ("%s for %s %s", _("Error
opening repository servers file"), path, _("repository"));
+ gchar *errorstr = g_strdup_printf ("%s : %s.\n%s", _("Error
opening"), path, _("This repository will be disabled"));
gfpm_error (_("Error opening repository file"), errorstr);
g_free (errorstr);
return;
@@ -663,7 +663,13 @@ gfpm_repomgr_populate_repolist (void)
repo_r = (gfpm_repo_t*)malloc(sizeof(gfpm_repo_t));
memset (repo_r, 0, sizeof(gfpm_repo_t));
gfpm_repomgr_populate_repo_info (str, repo_r);
+ if (!strlen(repo_r->name))
+ {
+ g_free (repo_r);
+ continue;
+ }
repo_r->enabled = TRUE;
+ repo_r->delete = FALSE;
// and then append it to our repo list
repolist->list = g_list_append (repolist->list, (gpointer)repo_r);
n++;
@@ -675,12 +681,17 @@ gfpm_repomgr_populate_repolist (void)
repo_r = (gfpm_repo_t*)malloc(sizeof(gfpm_repo_t));
memset (repo_r, 0, sizeof(gfpm_repo_t));
gfpm_repomgr_populate_repo_info (str, repo_r);
+ if (!strlen(repo_r->name))
+ {
+ g_free (repo_r);
+ continue;
+ }
repo_r->enabled = FALSE;
+ repo_r->delete = FALSE;
// and then append it to our repo list
repolist->list = g_list_append (repolist->list, (gpointer)repo_r);
n++;
}
- repo_r->delete = FALSE;
}
repolist->n = n;
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git