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] [day] [month] [year] [list]
Date:	Wed, 26 Jul 2006 11:13:57 +0200 (CEST)
From:	Bodo Eggert <7eggert@....de>
To:	"Horst H. von Brand" <vonbrand@....utfsm.cl>
cc:	7eggert@....de, Joshua Hudson <joshudson@...il.com>,
	linux-kernel@...r.kernel.org
Subject: Re: what is necessary for directory hard links

On Tue, 25 Jul 2006, Horst H. von Brand wrote:
> Bodo Eggert <7eggert@...tempel.de> wrote:
> > Horst H. von Brand <vonbrand@....utfsm.cl> wrote:
> > > Joshua Hudson <joshudson@...il.com> wrote:

> > > [...]
> > > 
> > >> Maybe someday I'll work out a system by which much less is locked.
> > >> Conceptually, all that is requred to lock for the algorithm
> > >> to work is creating hard-links to directories and renaming directories
> > >> cross-directory.
> > > 
> > > Some 40 years of filesystem development without finding a solution to that
> > > conundrum would make that quite unlikely, but you are certainly welcome to
> > > try.
> 
> > There is a simple solution against loops: No directory may contain a
> > directory with a lower inode number.
> 
> This is a serious restriction...

That's why I relax it in the next paragraph, so you'll only have to deal 
with inode numbers iff you want to hardlink directories.

> > Off cause this would interfere with normal operations, so you'll allocate all
> > normal inodes above e.g. 0x800000 and don't test between those inodes.
> 
> And allow loops there? I don't see how that solves anything...

No. Don't allow dir-hardliks there, so you can't create loops so you can 
freely create them without risking loops.

> > If you want to hardlink, you'll use a different (privileged) mkdir call
> > that will allocate a choosen low inode number. This is also required for
> > the parents of the hardlinked directories.
> 
> Argh... even /more/ illogical restrictions!

If no (hardlink) directory may contain a lower inode directory, all 
parents need to have a low inode.


A legal tree would e.g. look like this:

1-+-100
  | +-10001
  | `-10002
  +-101
  | +-10101
  | +-10002
  | `-10102
  `-10101

In order to create a loop, you'd e.g. need to link 101 into 10002. You 
can't, because they are ordered.

Directories above 0x800000 aren't ordered except being greater than low 
inodes, so you can create normal directories anywhere you desire, but you
obviously can't hardlink them.

-- 
It's redundant! It's redundant! 
-
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