|
Re: rpm 5.1 segfaults: msg#00089package-management.rpm.devel
On Apr 15, 2008, at 2:10 PM, Jeff Johnson wrote:
Hmmm, there's only one place that tsi->tsi_reqx is set. And AFAICT, addRelation() is called only within an rpmds iteration, where the value used should be valid. But the code paths are twistier than I would like because the iteration index is accessed in the addRelation() subroutine. Can I get you to try reproducing with one more assertion? Here is the patch: @@ -1902,6 +1903,7 @@ static inline int addRelation(rpmts ts, tsi->tsi_tagn = rpmdsTagN(requires); tsi->tsi_reqx = rpmdsIx(requires); +assert(tsi->tsi_reqx >= 0 && tsi->tsi_reqx < rpmdsCount(requires)); tsi->tsi_next = rpmteTSI(q)->tsi_next; rpmteTSI(q)->tsi_next = tsi; If the new assertion fires, then I'm not reading the rpmds iteration code correctly. If the old assertion fires, then there's a wild pointer somewhere. Thanks. 73 de Jeff ______________________________________________________________________ RPM Package Manager http://rpm5.org Developer Communication List rpm-devel-E22Dobh7AKI@xxxxxxxxxxxxxxxx |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: rpm 5.1 segfaults: 00089, Jeff Johnson |
|---|---|
| Next by Date: | Re: [CVS] RPM: rpm/ CHANGES rpm/lib/ rpmte.c: 00089, Ralf S. Engelschall |
| Previous by Thread: | Re: rpm 5.1 segfaultsi: 00089, Jeff Johnson |
| Next by Thread: | Re: rpm 5.1 segfaults: 00089, Per Øyvind Karlsen |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |