lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Sun, 3 May 2020 14:00:25 +0100
From:   Jonny Grant <>
Subject: /fs/ext4/namei.c ext4_find_dest_de()


I noticed that mkdir() returns EEXIST if a directory already exists. 
strerror(EEXIST) text is "File exists"

Can ext4_find_dest_de() be amended to return EISDIR if a directory 
already exists? This will make the error message clearer.

This is the line of code from ext4_find_dest_de():

if (ext4_match(dir, fname, de))
			return -EEXIST;

I propose to change to something like the following:

int ext4_match_result = ext4_match(dir, fname, de);

		nlen = EXT4_DIR_REC_LEN(de->name_len);
		rlen = ext4_rec_len_from_disk(de->rec_len, buf_size);
		if ((de->inode ? rlen - nlen : rlen) >= reclen)
		de = (struct ext4_dir_entry_2 *)((char *)de + rlen);

if (ext4_match_result)
     if(EXT4_FT_DIR == de->file_type)
         return -EISDIR;
	return -EEXIST;

Let me know if this would be supported, and I can prepare a patch.


Powered by blists - more mailing lists