pacman/lib/libalpm
Dan McGee 8a9ce12a27 Fix issues with replacing unowned symlinks
There aretwo seperate issues in the same block of file conflict
checking code here:
1) If realpath errored, such as when a symlink was broken, we would call
   'continue' rather than simply exit this particular method of
   resolution. This was likely just a copy-paste mistake as the previous
   resolving steps all use loops where continue makes sense. Refactor
   the check so we only proceed if realpath is successful, and continue
   with the rest of the checks either way.
2) The real problem this code was trying to solve was canonicalizing
   path component (e.g., directory) symlinks. The final component, if
   not a directory, should not be handled at all in this loop. Add a
   !S_ISLNK() condition to the loop so we only call this for real files.

There are few other small cleanups to the debug messages that I made
while debugging this problem- we don't need to keep printing the file
name, and ensure every block that sets resolved_conflict to true prints
a debug message so we know how it was resolved.

This fixes the expected failures from symlink010.py and symlink011.py,
while still ensuring the fix for fileconflict007.py works.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-10-26 17:32:46 -05:00
..
po Final Transifex update before 4.0 2011-10-12 13:42:12 -05:00
.gitignore Remove unnecessary entries from .gitignore files 2007-07-16 16:49:28 -04:00
Makefile.am Add sha2 (sha256) routines from PolarSSL 2011-08-15 07:07:13 -05:00
add.c Revamp scriptlet path formation for scriptlets in local database 2011-09-30 10:55:58 -05:00
add.h Rename pmhandle_t to alpm_handle_t 2011-06-28 14:04:00 +10:00
alpm.c Initialize cURL library on first use 2011-09-28 13:01:03 -05:00
alpm.h Update Doxyfile and fix some documentation errors caught by Doxygen 2011-09-22 16:37:36 -05:00
alpm_list.c alpm_list: use malloc instead of calloc 2011-09-27 17:49:27 -05:00
alpm_list.h Convert package filelists to an array instead of linked list 2011-07-21 15:04:30 -05:00
backup.c Allow fileconflict if unowned file moving into backup array 2011-07-14 15:34:04 -05:00
backup.h Allow fileconflict if unowned file moving into backup array 2011-07-14 15:34:04 -05:00
base64.c Update base64 PolarSSL code 2011-08-15 06:24:49 -05:00
base64.h Update base64 PolarSSL code 2011-08-15 06:24:49 -05:00
be_local.c Use _alpm_local_db_pkgpath in _cache_changelog_open 2011-09-30 11:08:49 -05:00
be_package.c Don't realloc a 0-length files array when loading packages 2011-10-26 15:44:55 -05:00
be_sync.c Refactor download payload reset and free 2011-09-28 13:01:03 -05:00
conflict.c Fix issues with replacing unowned symlinks 2011-10-26 17:32:46 -05:00
conflict.h Convert package filelists to an array instead of linked list 2011-07-21 15:04:30 -05:00
db.c Access db->pkgcache directly in db_free_pkgcache() 2011-09-20 10:23:10 -05:00
db.h Revamp scriptlet path formation for scriptlets in local database 2011-09-30 10:55:58 -05:00
delta.c account for partial delta files in download size 2011-09-11 19:10:48 -05:00
delta.h Rename pmdelta_t to alpm_delta_t 2011-06-28 23:28:23 +10:00
deps.c _alpm_splitdep: use malloc instead of calloc 2011-09-27 17:52:38 -05:00
deps.h Be more robust when copying package data 2011-08-19 11:09:57 -05:00
diskspace.c diskspace: fix memory leak on root mount not found 2011-09-08 14:18:19 -05:00
diskspace.h Use more correct integer types in diskspace checks 2011-09-07 21:05:04 -05:00
dload.c Add more logging to download code 2011-10-24 13:49:14 -05:00
dload.h Add missing #ifdef around cURL error code in download struct 2011-10-14 07:38:58 -05:00
error.c Attempt to fix up some of the brokenness around failed package loads 2011-08-08 19:42:52 -05:00
graph.c Rename pmgraph_t to alpm_graph_t 2011-06-28 23:28:24 +10:00
graph.h Rename pmgraph_t to alpm_graph_t 2011-06-28 23:28:24 +10:00
group.c Rename internal functions with grp in their name 2011-06-29 15:52:33 +10:00
group.h Rename internal functions with grp in their name 2011-06-29 15:52:33 +10:00
handle.c Move default siglevel value from backend to frontend 2011-09-22 10:32:30 -05:00
handle.h Initialize cURL library on first use 2011-09-28 13:01:03 -05:00
log.c Prefix _alpm_errno_t members with ALPM 2011-07-02 02:01:39 +10:00
log.h Rename pmloglevel_t to alpm_loglevel_t 2011-06-28 23:28:24 +10:00
md5.c Update MD5 routines with changes from PolarSSL 2011-08-11 20:17:21 -05:00
md5.h Update MD5 routines with changes from PolarSSL 2011-08-11 20:17:21 -05:00
package.c Revert "libalpm: compare pkgname with strcoll" 2011-09-27 20:24:04 -05:00
package.h Pass package signature data up one more level 2011-09-20 10:23:11 -05:00
pkghash.c alpm_list: use malloc instead of calloc 2011-09-27 17:49:27 -05:00
pkghash.h Rename pmpkghash_t to alpm_pkghash_t 2011-06-28 23:28:24 +10:00
rawstr.c include util.h in rawstr.c 2011-07-05 22:36:40 -05:00
remove.c Revamp scriptlet path formation for scriptlets in local database 2011-09-30 10:55:58 -05:00
remove.h Be smarter about running ldconfig during removal transactions 2011-09-19 13:18:42 -05:00
sha2.c Add sha2 (sha256) routines from PolarSSL 2011-08-15 07:07:13 -05:00
sha2.h Add sha2 (sha256) routines from PolarSSL 2011-08-15 07:07:13 -05:00
signing.c Show an error message on failed remote key lookup 2011-10-17 09:38:35 -05:00
signing.h signing: add a process and retry loop for database signatures 2011-09-20 10:23:11 -05:00
sync.c lib/sync: inform callers of compute_download_size of a partial 2011-10-25 10:38:12 -05:00
sync.h Rename pmhandle_t to alpm_handle_t 2011-06-28 14:04:00 +10:00
trans.c Refactor _alpm_runscriptlet() 2011-09-30 10:55:58 -05:00
trans.h Refactor _alpm_runscriptlet() 2011-09-30 10:55:58 -05:00
util.c Parse '0' as a valid package installed size 2011-10-04 15:31:17 -05:00
util.h _alpm_parsedate(): return time_t and not long 2011-09-01 12:36:11 -05:00
version.c vercmp: ensure 2.0a and 2.0.a do not compare equal 2011-08-23 01:49:29 -05:00