lists.openwall.net   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  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.64.0802141620330.694@fbirervta.pbzchgretzou.qr>
Date:	Thu, 14 Feb 2008 16:23:37 +0100 (CET)
From:	Jan Engelhardt <jengelh@...putergmbh.de>
To:	Hans-Jürgen Koch <hjk@...utronix.de>
cc:	Andi Kleen <andi@...stfloor.org>,
	Jasper Bryant-Greene <jasper@...x.geek.nz>,
	rzryyvzy <rzryyvzy@...shmail.net>, linux-kernel@...r.kernel.org
Subject: Re: Is there a "blackhole" /dev/null directory?


On Feb 14 2008 16:19, Hans-Jürgen Koch wrote:
>> 
>> Q: What if a program attempts to mkdir /dev/nullmnt/foo to just
>>    create a file /dev/nullmnt/foo/barfile?
>> A: /dev/nullmnt/foo must continue to exist or be accepted for a while,
>>    or perhaps for eternity.
>
>Well, the problem seems to be that a "directory" is not just data but
>also contains metadata. While it's easy to write data to /dev/null, you
>cannot simply discard metadata associated with a directory. So, such a
>"/dev/null-directory" would have to remember metadata (at least all
>created filenames including subdirectories) in the same way as other
>filesystems do. Only file _content_ can be discarded.

Not even that. Suppose a userspace program (whose output you'd like
to discard) does:

int main(void)
{
	int fd = open("/nullmnt/foo.txt", O_WRONLY | O_CREAT | O_EXCL);

	/* write lots of nonsensical data that we don't need anyway */
	write(fd, "Hello Wor(l)d", 13);

	if (lseek(fd, 0, SEEK_SET) < 0) {
		/* should not happen */
		fprintf(stderr, "Huh, did we write to a pipe or cdev?\n");
		abort();
	}

	/* verify */
	char buf[13];
	read(fd, buf, 13);
	if (memcmp(buf, "Hello Wor(l)d", 13) != 0)
		fprintf(stderr, "Aïe, disk corruption!\n");
}

>To be honest, I still cannot see many sensible usecases for that...

I agree.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ