diff options
author | Raphaël Hertzog <hertzog@debian.org> | 2011-07-20 08:29:05 +0200 |
---|---|---|
committer | Raphaël Hertzog <hertzog@debian.org> | 2011-07-20 08:29:14 +0200 |
commit | e135afdb35d0ac179657def901965a448115a981 (patch) | |
tree | c2c087486df21ace8fd77db9d56029023f9a2f06 /scripts/Makefile.am | |
parent | e6b7685a540c24da1f6357fe8869602d84444aee (diff) | |
download | dpkg-e135afdb35d0ac179657def901965a448115a981.tar.gz |
dpkg: fix possible segfault in findbreakcycle().
The circumstances are not entirely clear because clear_istobes() is
called earlier in the code and should already ensure that clientdata
is allocated for all packages in the database but the stack trace
reported leaves no room for any other interpretation. We must protect
the access to tpkg->clientdata in findbreakcycle() with
ensure_package_clientdata(tpkg).
Probably that some other parts of the code might create new packages in the
in-memory database depending on some specific conditions. It might be that
those conditions only hold for a multiarch-enabled dpkg for example if
the code looks up a package entry for an alternative architecture and
would thus create the package on the fly.
This is pure speculation because I did not push the investigations that
far. It might be something entirely different but it doesn't matter much
because the proposed fix is the same and just ensures that we respect
our API by protecting the access to clientdata.
See https://bugs.launchpad.net/ubuntu/+source/dpkg/+bug/733414 for
details.
Diffstat (limited to 'scripts/Makefile.am')
0 files changed, 0 insertions, 0 deletions