[skinlcarsng] segfault in displaymenu.c (gelöst)

  • Ich habe gerade mal geschaut, wo es einen leeren Text in cDrawDescription geben kann (ich gehe davon aus, das der segfault dort passiert). Es gibt da eigentlich nur eine Stelle, die anfällig sein könnte.

    Du könntest mal den angehängten Patch testen, der sollte das abfangen.


    Grüße

    kamel5

  • Habe mal den fix ins Ausgabeplugin eingecheckt. Bisher läufts, und alles was die Größe 0 hat, wird nicht gezeichnet. Mit den kleinen Abfragen gegen NULL in skinlcarsng sollten siche die Probleme jetzt erledigt haben. Nach meinem Verständnis ist es erlaubt, Rechtecke mit Breite 0 und strings mit Länge 0 zu zeichnen, dann müssen sich halt die OSD Funktionen drum kümmern.


    Andere Frage: Wie offen bist du für pull requests? Ich würde für mich ein paar Sachen im Skin anpassen wollen, z.B.

    - Channelanzeige Mitte unten Ellipsen statt Rechtecke

    - Menu-Ansicht oben um ein kleines Rechteck niedriger

    - Buttons auf lcars-Standardverhältnis/-größe und wo anders hin, damit

    - das das Videofenster oben rechts Platz hat, ohne dass die obere Leiste so hart geteilt wird

    - zusätzliche themes

    - ...

    Für mich mache ich das auf jeden Fall, wenn du Interesse hast, könnte ich dir dann auch Patches schicken...


    Ich orientiere mich daran und habe hier auch schon ein bißchen rumprobiert.


    Gruß

    Andreas


    EDIT: Oh, überschnitten ;)

  • Ich habe gerade mal geschaut, wo es einen leeren Text in cDrawDescription geben kann (ich gehe davon aus, das der segfault dort passiert). Es gibt da eigentlich nur eine Stelle, die anfällig sein könnte.

    Du könntest mal den angehängten Patch testen, der sollte das abfangen.


    Grüße

    kamel5

    Danke. Aber wie oben beschrieben, würde ich dahingehend im Plugin nichts ändern, ausser dass man sich evtl. den Aufrufe von ein paar Funktionen sparen will. Die leeren Texte müssen später abgefangen werden.

  • rell

    Changed the title of the thread from “[skinlcarsng] segfault in displaymenu.c” to “[skinlcarsng] segfault in displaymenu.c (gelöst)”.
  • Aber wie oben beschrieben, würde ich dahingehend im Plugin nichts ändern

    OK, der Einheitlichkeit halber würde ich das aber trotzdem machen, da bei den anderen Texten diese Abfrage auch schon vorhanden ist.


    Grüße

    kamel5

    VDR 2.6.4: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 38 Kernel 6.2 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Danke für die Infos. Habe es nun in meinen Plugins auch nachgezogen :)

    Den entscheidenden Fix in cOglCmdDrawText::Execute(void) brauchst du ja nicht ;) Den Bug hatte ich eingeführt, als ich für DrawText einen Texture-Atlas eingeführt habe, was die Sache bei viel Text ziemlich beschleunigt. Und der war (hoffentlich) letztlich für die segfaults verantwortlich...

    Die anderen ersparen der GPU letztlich nur die Arbeit, die sie eh nicht verrichten muss. Aber gerne, ich habe auch schon viel bei dir und inj abgespickt ;)


    EDIT: In cOglCmdDrawText könntest du der Vollständighalber vorab bei !symbols[0] aussteigen, denn in dem Fall geht er später eh nicht in die for-Schleife und du sparst dir die ganzen Bind()...

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!