Beiträge von wirbel

    Ich habe jetzt folgenden Test durchgeführt


    a) vdr-2.6.6 mit epg2vdr und control gestartet

    b) vdr-2.6.6 mit epg2vdr und softhddevice gestartet


    In beiden Fällen stürzt vdr absolut zuverlässig ab, wenn ich im Haupmenü

    'EPG and Timer' und dann auf 'Timer' gehe.


    Der Fehler liegt eindeutig an epg2vdr. Auch der Stack trace sieht gleich aus.

    Die code Änderungen für satip und iptv wären gering.

    Mal abgesehen davon, dass eine Änderung in iptv rein zu bekommen schwierig wird.



    Aber der Impact des Patches als solches für VDR Infrastruktur sind nicht ohne..

    Oh, ich hatte das schon vergessen..


    Da muss ich nochmal nachhaken. Wieso wurde aus der 2 eine 1?


    snprintf darf bis zu (sizeof(buffer) - 1) bytes schreiben, da ein byte weg ist für (Code & st_Mask) >> 24 und der pointer nicht mehr bei buffer beginnt.

    Wenn kein byte mehr übrig war für das \0, ist der string nicht mehr terminiert. Das führt dann zu l < (sizeof(buffer) - 1). Kleiner.

    Das byte für die nachfolgende Zeile fehlt mit dem W oder E dann aber noch - mein Fehler, sorry.

    Also

    Code
    if (l < (sizeof(buffer) - 2) && l > 0) {

    alternativ deine korrekte Lösung.

    Code
         int l = snprintf(q, sizeof(buffer) - 2, "%u.%u", abs(n) / 10, abs(n) % 10); // can't simply use "%g" here since the silly 'locale' messes up the decimal point
         if (l > 0) {

    nobanzai:


    Das kam mir auch schon in den Sinn, ob das vllt. die gleiche Ursache hat.

    Beide Plugins sind schon ewig nicht mehr angefasst worden, weil sie eben zu 100% stabil liefen und es keine feature requests oder dringende Änderungen in VDR selbst gab. Neuer VDR -> neu bauen && fertig. Mit 2.6.6 gibt es zu beiden Plugins problem reports, die nicht verstanden sind.

    Die letzte echte Änderung in control war Apr 3, 2021.


    Vom Prinzip her müsste das genau wie hier mit Geduld, Testern und detaillierten Infos / cores debugged werden.

    Ich selbst nutze control regelmäßig beim debuggen meiner Plugins mit einem (fast) ungepatchten VDR, aber ich kann hier leider keine Abstürze provozieren.


    Kann ich auch mit vnsiserver nicht, aber nutze das Plugin eigentlich nicht selbst.

    Würde es dir etwas ausmachen eine Datei namens .gitignore in VDR aufzunehmen?

    Diese Textdatei enthält Infos, welche files nicht versioniert werden.

    Normalerweise macht diese Datei keinerlei Arbeit, aber erleichtert das Verfolgen von Änderungen immens.




    Ein sinnvolles Beispiel wäre das hier

    Ich würde vorschlagen UpdateNameSource() privat zu halten:


    M-Reimer - danke! Sehe ich ganz genau so, ich hatte das schon gar nicht mehr auf dem Schirm.

    Dieser Patch von MarkusE+SHF sollte auf jeden Fall in die nächste VDR Version.


    Habe ich in mein temporäres git aufgenommen.

    Um so mehr hat RHS mit seinem Kommentar/Nachfrage recht..

    Hallo RHS,


    ja, das macht definitiv Sinn, Klarheit über die Teststände ist essentiell.

    Aber ohne deine intensiven Tests gäbe es keinen Fortschritt bei vnsi, danke dafür.

    Ich packe das mal in zwei temporäre github repos auf meinem Account, das macht es leichter für dich.


    ------------------------------------------------------------------------------------

    für vnsiserver bitte das hier verwenden:

    GitHub - wirbel-at-vdr-portal/vdr-plugin-vnsiserver-crashes: VDR plugin to handle XBMC clients.
    VDR plugin to handle XBMC clients. Contribute to wirbel-at-vdr-portal/vdr-plugin-vnsiserver-crashes development by creating an account on GitHub.
    github.com

    git clone https://github.com/wirbel-at-v…in-vnsiserver-crashes.git


    identisch zu:

    Commits · vdr-projects/vdr-plugin-vnsiserver
    VDR plugin to handle XBMC clients. Contribute to vdr-projects/vdr-plugin-vnsiserver development by creating an account on GitHub.
    github.com

    + processChannels_GetChannels_StateKey.diff

    -----------------------------------------------------------------------------------


    -----------------------------------------------------------------------------------

    für VDR bitte das hier verwenden:

    GitHub - wirbel-at-vdr-portal/vdr-cChannel-Name: temporary git repo for debugging cChannel::Name()
    temporary git repo for debugging cChannel::Name(). Contribute to wirbel-at-vdr-portal/vdr-cChannel-Name development by creating an account on GitHub.
    github.com

    git clone https://github.com/wirbel-at-v…tal/vdr-cChannel-Name.git


    identisch zu:

    vdr-2.6.6 (ohne Patches)

    + changes in cChannels.c for cChannel::Name() (wirbel + kls)

    -----------------------------------------------------------------------------------


    Du kannst aus beiden repos auch einfach die letzten commits als Patche downloaden..