summaryrefslogtreecommitdiff
path: root/src/trigproc.c
diff options
context:
space:
mode:
authorGuillem Jover <guillem@debian.org>2018-05-18 10:13:48 +0200
committerGuillem Jover <guillem@debian.org>2018-08-30 03:14:08 +0200
commit2d5e9185aa3582ff62f34ec3c66feea4439f9f03 (patch)
treea04fc9ca5d768eb47167c6bb8fec0ee528729de9 /src/trigproc.c
parent7ab849d1a814b2d2b2e29f9965fb5d51b654265a (diff)
downloaddpkg-2d5e9185aa3582ff62f34ec3c66feea4439f9f03.tar.gz
dpkg: Call ensure_package_clientdata() defensively
We want to stop calling this function from the fsys loading code, so we should make very sure it is being called before we access the clientdata members, otherwise we'll just segfault.
Diffstat (limited to 'src/trigproc.c')
-rw-r--r--src/trigproc.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/trigproc.c b/src/trigproc.c
index 70a42eaa2..ef59455e3 100644
--- a/src/trigproc.c
+++ b/src/trigproc.c
@@ -160,6 +160,7 @@ trigproc_run_deferred(void)
push_error_context_jump(&ejbuf, print_error_perpackage,
pkg_name(pkg, pnaw_nonambig));
+ ensure_package_clientdata(pkg);
pkg->clientdata->trigprocdeferred = NULL;
trigproc(pkg, TRIGPROC_TRY);
@@ -362,6 +363,7 @@ trigproc(struct pkginfo *pkg, enum trigproc_type type)
debug(dbg_triggers, "trigproc %s", pkg_name(pkg, pnaw_always));
+ ensure_package_clientdata(pkg);
if (pkg->clientdata->trigprocdeferred)
pkg->clientdata->trigprocdeferred->pkg = NULL;
pkg->clientdata->trigprocdeferred = NULL;