From: Michael Schroeder Date: Mon, 8 Oct 2012 09:55:41 +0000 (+0200) Subject: fix finish_solvable do not rely on a "handle" argument, as the handle might have... X-Git-Tag: BASE-SuSE-Code-12_3-Branch~231 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dc2c6fe76bc1231dd8be56eca5b92273e24fca89;p=thirdparty%2Flibsolv.git fix finish_solvable do not rely on a "handle" argument, as the handle might have been set to zero --- diff --git a/ext/repo_susetags.c b/ext/repo_susetags.c index 5ed8d9f7..f6fd833b 100644 --- a/ext/repo_susetags.c +++ b/ext/repo_susetags.c @@ -401,9 +401,10 @@ tag_from_string(char *cs) */ static void -finish_solvable(struct parsedata *pd, Solvable *s, Id handle, Offset freshens) +finish_solvable(struct parsedata *pd, Solvable *s, Offset freshens) { Pool *pool = pd->repo->pool; + Id handle = s - pool->solvables; if (pd->nfilelist) { @@ -774,7 +775,7 @@ repo_add_susetags(Repo *repo, FILE *fp, Id defvendor, const char *language, int if (tag == CTAG('=', 'D', 'l', 't')) { if (s) - finish_solvable(&pd, s, handle, freshens); + finish_solvable(&pd, s, freshens); s = 0; pd.kind = 0; if (split(line + 5, sp, 5) != 4) @@ -796,7 +797,7 @@ repo_add_susetags(Repo *repo, FILE *fp, Id defvendor, const char *language, int /* If we have an old solvable, complete it by filling in some default stuff. */ if (s) - finish_solvable(&pd, s, handle, freshens); + finish_solvable(&pd, s, freshens); /* * define kind @@ -1150,7 +1151,7 @@ repo_add_susetags(Repo *repo, FILE *fp, Id defvendor, const char *language, int } /* for(;;) */ if (s) - finish_solvable(&pd, s, handle, freshens); + finish_solvable(&pd, s, freshens); solv_free(pd.filelist); /* Shared attributes