mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* open("foo", 3)
@ 2005-08-20 16:28 Miklos Szeredi
  2005-08-20 17:30 ` Linus Torvalds
  0 siblings, 1 reply; 3+ messages in thread
From: Miklos Szeredi @ 2005-08-20 16:28 UTC (permalink / raw)
  To: torvalds, viro; +Cc: linux-kernel

Linus et Al,

Access mode of 3 is undocumented but it does do something halfway sane
on all linuxes (checked back to 2.0.X).

The open requires both read and write permission to succeed, but the
resulting file descriptor can neither be read nor written.

The responsible code in filp_open() is this:

	namei_flags = flags;
	if ((namei_flags+1) & O_ACCMODE)
		namei_flags++;

	/* ... */

	error = open_namei(filename, namei_flags, mode, &nd);
	if (!error)
		return dentry_open(nd.dentry, nd.mnt, flags);

And in dentry_open():

	f->f_mode = ((flags+1) & O_ACCMODE) | /* ... */

Note, that open_namei() is checking permissions, and dentry_open()
sets f->f_mode, but calculates it differently.

My question is: is this deliberate or accidental?  Wouldn't it be more
logical to not require any permission to open such file?  Or is there
some security concern with that?

Thanks,
Miklos

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2005-08-20 18:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-08-20 16:28 open("foo", 3) Miklos Szeredi
2005-08-20 17:30 ` Linus Torvalds
2005-08-20 18:00   ` Steven Rostedt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®