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-next>] [day] [month] [year] [list]
Message-ID: <20060929010857.GC11055@thunk.org>
Date:	Thu, 28 Sep 2006 21:08:57 -0400
From:	Theodore Tso <tytso@....edu>
To:	Jörg Sommer <joerg@...a.gnuu.de>,
	389772@...s.debian.org
Cc:	paulus@...ibm.com, linux-ext4@...r.kernel.org
Subject: Re: Bug#389772: e2fsprogs: e2fsck produces broken htree on ppc

On Wed, Sep 27, 2006 at 02:22:51PM +0200, Jörg Sommer wrote:
> Package: e2fsprogs
> Version: 1.39-1
> Severity: important
> 
> you set the compiler option -fsigned-char, but on PowerPC the default is
> unsigned char. This makes the kernel uses unsigned and e2fsck uses signed
> chars.
> 
> In the case of an 8 bit character, str2hashbuf() in lib/ext2fs/dirhash.c
> produces a different buf than the kernel, which leads to the problem that
> the hash calculated by TEA_transform() is a different one.

Oh, dear.  This is actually a kernel bug, because the on all other
platforms, the TEA hash will be using a signed char --- and if you
want filesystems to be portable between different systems (hint: we
do), then all architectures should be using the same algorithm.  And
the vast majority of the systems out there are using signed chars.
Unfortunately PowerPC decided to be different.  :-(

Fixing this is going to be painful, because if we fix the kernel to
suddenly use signed chars in the TEA algorithm, like all other right
thinking architectures (joke! joke!), then existing ext3 filesystems
with directory hashing enabled will break.

But given that e2fsck is doing it right, and the kernel is doing it
wrong, we have the mismatch already.  Sigh, this is going to be
especially painful, given that all the major distributions (SLES,
RHEL, Debian, Ubuntu, etc.) are now shipping with directory hashing
enabled by default, and so this is going to impact a huge number of
PowerPC Linux users and customers.

OK, I think how are going to have to fix this is to define two new
flags in the superblock, which indicates whether str2hashbuf is using
signed or unsigned chars.  If neither flag is set, then new kernels
and new e2fsprogs will set the flag for the "native" signed/unsigned
char convention, and assume that it is correct.  I think this is only
a PowerPC problem, but we'll probably need to do a quick check of all
of the other architectures.

Paul, since you're the PowerPC maintainer, I figured I'd better cc
you.  Does this sound sane to you?

							- Ted
-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ