Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Jul 2016 10:19:10 +0000 (UTC)
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r303217 - in head/usr.sbin/pw: . tests
Message-ID:  <201607231019.u6NAJAxg077919@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bapt
Date: Sat Jul 23 10:19:10 2016
New Revision: 303217
URL: https://svnweb.freebsd.org/changeset/base/303217

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@ryanday.net>
  Reported by:	eniorm <eniorm@gmail.com>
  MFC after:	1 day

Modified:
  head/usr.sbin/pw/rm_r.c
  head/usr.sbin/pw/tests/pw_userdel.sh

Modified: head/usr.sbin/pw/rm_r.c
==============================================================================
--- head/usr.sbin/pw/rm_r.c	Sat Jul 23 08:23:57 2016	(r303216)
+++ head/usr.sbin/pw/rm_r.c	Sat Jul 23 10:19:10 2016	(r303217)
@@ -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: head/usr.sbin/pw/tests/pw_userdel.sh
==============================================================================
--- head/usr.sbin/pw/tests/pw_userdel.sh	Sat Jul 23 08:23:57 2016	(r303216)
+++ head/usr.sbin/pw/tests/pw_userdel.sh	Sat Jul 23 10:19:10 2016	(r303217)
@@ -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
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201607231019.u6NAJAxg077919>