svn commit: r303257 - in stable/10/usr.sbin/pw: . tests
Baptiste Daroussin
bapt at FreeBSD.org
Sun Jul 24 08:21:22 UTC 2016
Author: bapt
Date: Sun Jul 24 08:21:21 2016
New Revision: 303257
URL: https://svnweb.freebsd.org/changeset/base/303257
Log:
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 at ryanday.net>
Reported by: eniorm <eniorm at gmail.com>
Modified:
stable/10/usr.sbin/pw/rm_r.c
stable/10/usr.sbin/pw/tests/pw_userdel.sh
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/usr.sbin/pw/rm_r.c
==============================================================================
--- stable/10/usr.sbin/pw/rm_r.c Sun Jul 24 08:12:23 2016 (r303256)
+++ stable/10/usr.sbin/pw/rm_r.c Sun Jul 24 08:21:21 2016 (r303257)
@@ -50,6 +50,9 @@ rm_r(int rootfd, const char *path, uid_t
path++;
dirfd = openat(rootfd, path, O_DIRECTORY);
+ if (dirfd == -1) {
+ return;
+ }
d = fdopendir(dirfd);
while ((e = readdir(d)) != NULL) {
Modified: stable/10/usr.sbin/pw/tests/pw_userdel.sh
==============================================================================
--- stable/10/usr.sbin/pw/tests/pw_userdel.sh Sun Jul 24 08:12:23 2016 (r303256)
+++ stable/10/usr.sbin/pw/tests/pw_userdel.sh Sun Jul 24 08:21:21 2016 (r303257)
@@ -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
}
More information about the svn-src-stable-10
mailing list