Quoting Samuel Thibault (2014-04-28 12:34:43)
> Justus Winter, le Mon 28 Apr 2014 12:20:00 +0200, a écrit :
> > Previously, inum was of type int, whereas dino_ref expects ino_t.  On
> > Hurd/x86 the former is 32 bit wide, the latter 64.  If dino_ref is
> > inlined, this does not seem to pose a problem, but if ext2fs is
> > compiled with -O0, this most likely results in an invalid memory access.
> 
> Why would there be an invalid memory access? The compiler will just
> truncate the value before passing it as scalar parameter.

Yes, funny that.  I turned on -O0 and then spent a night wondering why
ext2fs kept segfaulting after an innocent mechanical change to my
patch series :(

Turned out that somehow a perfectly innocent inode number like 17 got
turned into a gigantic 64-bit value.  I have no explanation for this.

Justus

Reply via email to