--- rpm-5.4.7/lib/rpmfc.c.strdup~ 2012-03-13 18:49:34.187095285 +0100 +++ rpm-5.4.7/lib/rpmfc.c 2012-03-13 18:49:49.438118160 +0100 @@ -554,7 +554,7 @@ assert(EVR != NULL); char *oldVal = xstrdup(strchr(rpmfcFileDep(buf, fc->ix, *depsp), ' ')); if (res > 0) { (*depsp)->Flags[(*depsp)->i] = Flags; - (*depsp)->EVR[(*depsp)->i] = EVR; + (*depsp)->EVR[(*depsp)->i] = strdup(EVR); rpmlog(RPMLOG_WARNING, "%s (%s) overlaps %s (%s), removing %s\n", rpmdsDNEVR(*depsp), ix < (int)fc->nfiles ? fc->fn[ix] + fc->brlen : "explicit", rpmdsDNEVR(ds), fc->fn[fc->ix] + fc->brlen, rpmdsDNEVR(*depsp)); } else if (res < 0) rpmlog(RPMLOG_WARNING, "%s (%s) overlaps %s (%s), removing %s\n", rpmdsDNEVR(ds), fc->fn[fc->ix] + fc->brlen, rpmdsDNEVR(*depsp), ix < (int)fc->nfiles ? fc->fn[ix] + fc->brlen : "explicit", rpmdsDNEVR(ds));