pacman/lib/libalpm
Dave Reisner 26a79cb29d libalpm: never attempt to remove a mountpoint
Arch Linux typically runs into this with /sys when upgrading the
filesystem package in build chroots, but LXC users might also run into
this, since their /sys is shared from the host and must, for security
reasons, be mounted RO.

I've neglected to add any tests for this because they would require root
in order to run. Current tests all pass with this patch and I've
confirmed the desired behavior in a VM. Incidentally, the first hunk of
this patch (skipping can_remove_file checks for directories) resolves the
case of API mountpoints being removed since they eventually fall into
unlink_file and fail with "contains files". However, this patch should
still be the Right Thing To Do™, as we can't possibly remove a directory
that is also a mountpoint.

Signed-off-by: Dave Reisner <dreisner@archlinux.org>

[Allan] Do not skip checking if directories can be removed. Instead test
if directories are mountpoints in can_remove_file.

Signed-off-by: Allan McRae <allan@archlinux.org>
2013-02-16 11:06:43 +10:00
..
po Updates from Transifex 2012-04-07 10:13:37 -05:00
.gitignore libalpm: add pkg-config file 2012-04-25 20:02:36 -04:00
Makefile.am inline libarchive compat wrappers 2013-02-07 10:48:11 +10:00
add.c Use libarchive compat header for relevant symbols 2013-01-29 13:37:32 +10:00
add.h Update copyright year for 2013 2013-01-03 12:03:09 +10:00
alpm.c Update copyright year for 2013 2013-01-03 12:03:09 +10:00
alpm.h Add format attributes to all required functions 2013-02-13 11:50:33 +10:00
alpm_list.c Update copyright year for 2013 2013-01-03 12:03:09 +10:00
alpm_list.h Update copyright year for 2013 2013-01-03 12:03:09 +10:00
backup.c Update copyright year for 2013 2013-01-03 12:03:09 +10:00
backup.h Update copyright year for 2013 2013-01-03 12:03:09 +10:00
base64.c Use 32-bit wide integer type in PolarSSL code 2012-01-07 11:27:41 -06:00
base64.h base64: don't compile base64_encode() function 2011-10-17 12:03:02 -05:00
be_local.c Restore libarchive 2.8.x compatibility 2013-01-29 13:37:32 +10:00
be_package.c Import key if needed when installing package from file 2013-02-09 12:43:37 +10:00
be_sync.c Fix registering database with non-gpgme builds 2013-02-13 11:50:33 +10:00
conflict.c add doxygen comments to conflict.c 2013-01-28 23:38:46 +10:00
conflict.h Update copyright year for 2013 2013-01-03 12:03:09 +10:00
db.c Update copyright year for 2013 2013-01-03 12:03:09 +10:00
db.h Update copyright year for 2013 2013-01-03 12:03:09 +10:00
delta.c Use a defined constant in delta.c for num_matches 2013-01-03 12:03:10 +10:00
delta.h Update copyright year for 2013 2013-01-03 12:03:09 +10:00
deps.c Update copyright year for 2013 2013-01-03 12:03:09 +10:00
deps.h Update copyright year for 2013 2013-01-03 12:03:09 +10:00
diskspace.c Update copyright year for 2013 2013-01-03 12:03:09 +10:00
diskspace.h Update copyright year for 2013 2013-01-03 12:03:09 +10:00
dload.c dload: pass back the effective URL to callers of _alpm_download 2013-01-29 13:36:58 +10:00
dload.h dload: pass back the effective URL to callers of _alpm_download 2013-01-29 13:36:58 +10:00
error.c Update copyright year for 2013 2013-01-03 12:03:09 +10:00
filelist.c Fix space between control structure and open parens 2013-01-04 21:49:38 +10:00
filelist.h Update copyright year for 2013 2013-01-03 12:03:09 +10:00
graph.c Update copyright year for 2013 2013-01-03 12:03:09 +10:00
graph.h Update copyright year for 2013 2013-01-03 12:03:09 +10:00
group.c Update copyright year for 2013 2013-01-03 12:03:09 +10:00
group.h Update copyright year for 2013 2013-01-03 12:03:09 +10:00
handle.c Add configuration option for Upgrade operation SigLevel 2013-02-07 10:48:11 +10:00
handle.h Add configuration option for Upgrade operation SigLevel 2013-02-07 10:48:11 +10:00
libalpm.pc.in libalpm: add pkg-config file 2012-04-25 20:02:36 -04:00
libarchive-compat.h inline libarchive compat wrappers 2013-02-07 10:48:11 +10:00
log.c Add format attributes to all required functions 2013-02-13 11:50:33 +10:00
log.h add caller prefix to alpm_logaction 2013-01-28 23:38:46 +10:00
md5.c Use 32-bit wide integer type in PolarSSL code 2012-01-07 11:27:41 -06:00
md5.h Update MD5 routines with changes from PolarSSL 2011-08-11 20:17:21 -05:00
package.c Update copyright year for 2013 2013-01-03 12:03:09 +10:00
package.h Update copyright year for 2013 2013-01-03 12:03:09 +10:00
pkghash.c Update copyright year for 2013 2013-01-03 12:03:09 +10:00
pkghash.h Update copyright year for 2013 2013-01-03 12:03:09 +10:00
rawstr.c include util.h in rawstr.c 2011-07-05 22:36:40 -05:00
remove.c libalpm: never attempt to remove a mountpoint 2013-02-16 11:06:43 +10:00
remove.h Update copyright year for 2013 2013-01-03 12:03:09 +10:00
sha2.c Use 32-bit wide integer type in PolarSSL code 2012-01-07 11:27:41 -06:00
sha2.h Add sha2 (sha256) routines from PolarSSL 2011-08-15 07:07:13 -05:00
signing.c Fix compilation error on clang 2013-02-13 11:50:32 +10:00
signing.h Make decode_signature available to the library 2013-02-09 12:43:37 +10:00
sync.c Fix --without-gpgme build 2013-02-13 11:50:33 +10:00
sync.h Update copyright year for 2013 2013-01-03 12:03:09 +10:00
trans.c Add format attributes to all required functions 2013-02-13 11:50:33 +10:00
trans.h Update copyright year for 2013 2013-01-03 12:03:09 +10:00
util-common.c Split common utility functions for libalpm and pacman 2013-01-04 21:49:37 +10:00
util-common.h Split common utility functions for libalpm and pacman 2013-01-04 21:49:37 +10:00
util.c Use libarchive compat header for relevant symbols 2013-01-29 13:37:32 +10:00
util.h Add format attributes to all required functions 2013-02-13 11:50:33 +10:00
version.c Fix space between control structure and open parens 2013-01-04 21:49:38 +10:00