Erstellt vor 8 Tagen

#2969 new defect

lzma2eva SEGFAULT mit gcc-8

Erstellt von: f_666 Verantwortlicher:
Priorität: normal Meilenstein: freetz-next
Komponente: tools Version: devel
Stichworte: lzma2eva eva2lzma segfault Beobachter:
Product Id: Firmware Version:

Beschreibung

In den Dateien eva2lzma.c und lzma2eva.c ist schon seit jeher ein Fehler, der mit gcc-8 jetzt endgültig zu einem SEGFAULT führt.
Mindestens gcc-7 warnt schon vor:

int
main(int argc, char *argv[])
{
...
  static const uint8_t buf[4096];
...
  while (0 < (elems = fread(&buf, sizeof buf[0], sizeof buf, in))) {
...

Warum buf static ist, erschließt sich mir nicht, aber const ist er auf keinen Fall. gcc-8 scheint buf in einen schreibgeschützten Bereich zu legen, worauf hin fread in der glibc einen SEGFAULT wirft.

Der angehängte Patch nimmt das static const in den beiden Dateien einfach raus.

Anhänge (1)

gcc_81_fix.diff (601 Byte) - hinzugefügt von f_666 vor 8 Tagen.
fix eva2lzma and lzma2eva to work with gcc-8

Alle Anhänge herunterladen als: .zip

Änderungshistorie (1)

Geändert vor 8 Tagen durch f_666

fix eva2lzma and lzma2eva to work with gcc-8

Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.