fix: GTK assertions + Segfault beim Backup starten #7

Closed
opened 2026-09-08 08:59:56 +00:00 by x3 · 0 comments
Owner

Fehler

Beim Starten eines Backups traten mehrere Fehler auf:

(x3-backup:8714): Gtk-CRITICAL: gtk_widget_get_scale_factor: assertion GTK_IS_WIDGET failed
(x3-backup:8714): Gtk-CRITICAL: gtk_box_pack: assertion GTK_IS_BOX failed
(x3-backup:8714): Gtk-WARNING: markup error parsing <b><big>...</big></big>
(x3-backup:8714): Gtk-WARNING: no tag with name garbage bytes!
Segmentation fault (core dumped)

Ursachen & Fixes (01b03f8)

1. gtk_box_pack auf GtkMenuBar

build_toolbar() hat versucht, den Button-Toolbar in toolbar_ (GtkMenuBar) einzupacken. GtkMenuBar ist kein GtkBox.

Fix: build_toolbar() gibt jetzt GtkWidget* zurueck statt in toolbar_ zu packen.

2. Markup-Fehler

<b><big>%s</big></big> - Falsche Schliessreihenfolge.

Fix: <b><big>%s</big></b>

3. Segfault durch gueltigen Tag-Namen

append_backup_line() hat einen gueltigen Tag-Namen direkt an gtk_text_buffer_insert_with_tags_by_name uebergeben, ohne zu pruefen ob der Tag existiert. Durch die Speicher Korruption vom Bug #1 enthielt der tag Pointer Muellbytes.

Fix: Tag-Name wird jetzt mit gtk_text_tag_table_lookup() validiert vor dem Gebrauch.

4. Fehlender "cmd" Tag

Live Log Buffer hatte keinen "cmd" Tag, obwohl er verwendet wurde.

Fix: "cmd" Tag zum Live Log Buffer hinzugefuegt.

Dateien

  • src/main_window.cpp
  • src/main_window.h

Geschlossen durch: 01b03f8

## Fehler Beim Starten eines Backups traten mehrere Fehler auf: ``` (x3-backup:8714): Gtk-CRITICAL: gtk_widget_get_scale_factor: assertion GTK_IS_WIDGET failed (x3-backup:8714): Gtk-CRITICAL: gtk_box_pack: assertion GTK_IS_BOX failed (x3-backup:8714): Gtk-WARNING: markup error parsing <b><big>...</big></big> (x3-backup:8714): Gtk-WARNING: no tag with name garbage bytes! Segmentation fault (core dumped) ``` ## Ursachen & Fixes (01b03f8) ### 1. gtk_box_pack auf GtkMenuBar `build_toolbar()` hat versucht, den Button-Toolbar in `toolbar_` (GtkMenuBar) einzupacken. GtkMenuBar ist kein GtkBox. **Fix:** `build_toolbar()` gibt jetzt `GtkWidget*` zurueck statt in `toolbar_` zu packen. ### 2. Markup-Fehler `<b><big>%s</big></big>` - Falsche Schliessreihenfolge. **Fix:** `<b><big>%s</big></b>` ### 3. Segfault durch gueltigen Tag-Namen `append_backup_line()` hat einen gueltigen Tag-Namen direkt an `gtk_text_buffer_insert_with_tags_by_name` uebergeben, ohne zu pruefen ob der Tag existiert. Durch die Speicher Korruption vom Bug #1 enthielt der `tag` Pointer Muellbytes. **Fix:** Tag-Name wird jetzt mit `gtk_text_tag_table_lookup()` validiert vor dem Gebrauch. ### 4. Fehlender "cmd" Tag Live Log Buffer hatte keinen "cmd" Tag, obwohl er verwendet wurde. **Fix:** "cmd" Tag zum Live Log Buffer hinzugefuegt. ## Dateien - `src/main_window.cpp` - `src/main_window.h` Geschlossen durch: 01b03f8
x3 closed this issue 2026-09-08 09:00:00 +00:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: x3/x3-backup#7