Be more robust when copying package data
commit6d544984f2418ea34caab4c433580487b760362a
authorDan McGee <dan@archlinux.org>
Fri, 19 Aug 2011 16:06:55 +0000 (19 11:06 -0500)
committerDan McGee <dan@archlinux.org>
Fri, 19 Aug 2011 16:09:57 +0000 (19 11:09 -0500)
treecf0510b97a6495587c87598a70bf8761189f5c32
parent9934b3bd345011eef6a96249d8d90de594c04cd0
Be more robust when copying package data

This changes the signature of _alpm_pkg_dup() to return an integer error
code and provide the new package in a passed pointer argument. All
callers are now more robust with checking the return value of this
function to ensure a fatal error did not occur.

We allow load failures to proceed as otherwise we have a chicken and egg
problem- if a 'desc' local database entry is missing, the best way of
restoring said file is `pacman -Sf --dbonly packagename`. This patch
fixes a segfault that was occurring in this case.

Fixes the segfault reported in FS#25667.

Signed-off-by: Dan McGee <dan@archlinux.org>
lib/libalpm/add.c
lib/libalpm/db.c
lib/libalpm/deps.c
lib/libalpm/deps.h
lib/libalpm/package.c
lib/libalpm/package.h
lib/libalpm/remove.c
lib/libalpm/sync.c