diff options
author | Dan McGee <dan@archlinux.org> | 2011-05-19 17:42:22 -0500 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2011-05-19 17:42:22 -0500 |
commit | 65c18807350b2bedff0546b839fd5cd0004a6d4f (patch) | |
tree | 9b6046a782e77ca8fdcc44159266c5e3ce6fafec /lib/libalpm/trans.c | |
parent | f2c4e7e55220addef0581d1c38cc7363b5a0884c (diff) | |
download | pacman-65c18807350b2bedff0546b839fd5cd0004a6d4f.tar.xz |
Bail early if we don't have a valid lockfile path
This addresses FS#24292. If one does the bad thing of not checking
pm_errno after calling set_dbpath(), you may not realize the
initialization process went wrong and calling trans_init() resulted in a
segfault. If we don't have a lockfile path, bail out and have
trans_init() fail.
Also remove a ALPM_LOG_FUNC call that was causing pm_errno to return "no
handle"; this was due to a log call in the handle setup (whereby the log
attempts to use a callback attached to the handle).
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib/libalpm/trans.c')
-rw-r--r-- | lib/libalpm/trans.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/libalpm/trans.c b/lib/libalpm/trans.c index 7affbfbd..bf9ef722 100644 --- a/lib/libalpm/trans.c +++ b/lib/libalpm/trans.c @@ -58,6 +58,8 @@ static int make_lock(pmhandle_t *handle) int fd; char *dir, *ptr; + ASSERT(handle->lockfile != NULL, return -1); + /* create the dir of the lockfile first */ dir = strdup(handle->lockfile); ptr = strrchr(dir, '/'); @@ -110,7 +112,6 @@ int SYMEXPORT alpm_trans_init(pmtransflag_t flags, /* Sanity checks */ ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1)); - ASSERT(handle->trans == NULL, RET_ERR(PM_ERR_TRANS_NOT_NULL, -1)); /* lock db */ |