Handle null pkgcache for local/sync db_populate()
commitbe9a60a338fd8591918711f5e826012a0d83136e
authorPang Yan Han <pangyanhan@gmail.com>
Mon, 7 Feb 2011 22:59:04 +0000 (8 06:59 +0800)
committerDan McGee <dan@archlinux.org>
Tue, 8 Feb 2011 02:21:34 +0000 (7 20:21 -0600)
tree9dbbda0e153e6215180e2430bb71e4c1054645e3
parentbb071f4eb20810216b731f6792a32c148eb78931
Handle null pkgcache for local/sync db_populate()

In sync_db_populate() and local_db_populate(), a NULL db->pkgcache is not
caught, allowing the functions to continue instead of exiting.

A later alpm_list_msort() call which uses alpm_list_nth() will thus traverse
invalid pointers in a non-existent db->pkgcache->list.

pm_errno is set to PM_ERR_MEMORY as _alpm_pkghash_create() will only return
NULL when we run out of memory / exceed max hash table size. The local/sync
db_populate() functions are also exited.

Signed-off-by: Pang Yan Han <pangyanhan@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
lib/libalpm/be_local.c
lib/libalpm/be_sync.c