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

Bug#731806: debian-installer: FTBFS on sparc: genisoimage errors



Hi,

> I really need a disassembly and to be able to probe the runtime
> stack a bit, so that really means that I need to build the code. :)

The current example would be a bit too opulent, i guess:

  -rwxr-xr-x 1 thomas thomas 3753398 avril 28 17:49 xorriso/xorriso

(wget http://www.gnu.org/software/xorriso/xorriso-1.3.2.tar.gz
 untar, cd xorriso-1.3.2, ./configure, make, ls -l xorriso/xorriso,
 crash by:
    xorriso/xorriso -outdev stdio:/dev/null -map ./xorriso /
)

I'll try to reproduce by a smaller program on Sebastien's
system.


> I think as a more meta-problem is this: the code's logic for "how
> much" to copy is wrong. It copies too many bytes on many cases and
> violates the C contract that you'll only copy like objects using "=".
> [...] you're copying unlike objects of different sizes and
> that's never safe.

It's the job of a C union to provide a common hull around objects
of different size. One may dispute whether using union is a good
idea (like overloading in the OO paradigm). But unions are part of C
since K&R and they are supposed to be safe.
  http://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Size-of-Unions

As for the cost: The threads are running big operations of libburn.
Even a full MB of copying would not make much difference.

Elsewise i agree with you. I would have written it differently, too.
But i will try to keep the necessary changes as small as possible.
So the union approach will most probably stay unless i get convinced
that it is faulty C language.


Have a nice day :)

Thomas


Reply to: