open("foo", 3)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux