Erstellt vor 2 Monaten

Geschlossen vor 8 Wochen

#2969 closed defect (fixed)

lzma2eva SEGFAULT mit gcc-8

Erstellt von: f_666 Verantwortlicher: er13
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 2 Monaten.
fix eva2lzma and lzma2eva to work with gcc-8

Alle Anhänge herunterladen als: .zip

Änderungshistorie (2)

Geändert vor 2 Monaten durch f_666

fix eva2lzma and lzma2eva to work with gcc-8

comment:1 Geändert vor 8 Wochen durch er13

  • Lösung auf fixed gesetzt
  • Status von new nach closed geändert
  • Verantwortlicher auf er13 gesetzt

In 14764:

lzma2eva/eva2lzma: remove (incorrect) const and (unnecessary) static modifiers, by f_666

fixes build warnings/errors with gcc versions ≥ 7
closes #2969

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