ZitatEtwas testen mit einer an unterschiedlichen Stellen eingefügten Messagebox ergab dann auch, dass die 32 Bit Release-Version beim Entpacken der Dateien von History Line abschmiert.
Also habe ich testweise mal die Größe des von "Unpack_file" per malloc reservierten Speichers erhöht uns siehe da, es läuft. Es reicht sogar ein zusätzliches Byte beim Puffer für die entpackten Daten.
Finde das aber immernoch einen sehr merkwürdigen Fehler. Der betroffene Code läuft unter DOS und als 64-Bit Code wunderbar, nur unter 32 Bit braucht es ein zusätzliches Byte bei reserviertem Speicher.
Das ist doch seltsam...
find ich auch seltsam - fühlt sich an wie ein undefined-behavior-aus-dem-Weg geher das mit dem Byte - entweder schreibt der 64bit Teil über die Grenze - dann ist es undefined und "kann" funktionieren, oder der 32Bit schreibt über die Grenze und ist es eben nur zufällig besser merkbar - kann auch irgendwann ohne das Byte plötzlich wieder funktionieren - undefined-behavior=random Absturzgenerator
ich würde den Entpacker ordentlich mit assert zukleistern und prüfen ob alle Indices usw. richtig sind
unter Linux hab ich auch Segmentation-Fault irgendwo beim Entpacken