Do not try to delete the home of the user if is is not a directory for example

"/dev/null"

PR:		211195
Submitted by:	rday <ryan@ryanday.net>
Reported by:	eniorm <eniorm@gmail.com>
MFC after:	1 day
This commit is contained in:
Baptiste Daroussin 2016-07-23 10:19:10 +00:00
parent 81fc45fc23
commit 1d981d8ef5
2 changed files with 12 additions and 0 deletions

View File

@ -50,6 +50,9 @@ rm_r(int rootfd, const char *path, uid_t uid)
path++;
dirfd = openat(rootfd, path, O_DIRECTORY);
if (dirfd == -1) {
return;
}
d = fdopendir(dirfd);
while ((e = readdir(d)) != NULL) {

View File

@ -59,9 +59,18 @@ delete_numeric_name_body() {
${PW} userdel -n 4001
}
atf_test_case home_not_a_dir
home_not_a_dir_body() {
populate_root_etc_skel
touch ${HOME}/foo
atf_check ${RPW} useradd foo -d /foo
atf_check ${RPW} userdel foo -r
}
atf_init_test_cases() {
atf_add_test_case rmuser_seperate_group
atf_add_test_case user_do_not_try_to_delete_root_if_user_unknown
atf_add_test_case delete_files
atf_add_test_case delete_numeric_name
atf_add_test_case home_not_a_dir
}