D-BUS und der unique connection name



  • Wenn der unique connection name nur ein einziges mal während der gesamten Laufzeit der BUS Session vergeben wird, wie es in folgendem Artikel steht:
    https://en.wikipedia.org/wiki/D-Bus#Bus_model

    Wie wird dann, wenn das Programm das ihn bekommen hat, beendet wurde, sichergestellt, dass er nicht noch einmal vergeben wird?
    Wird da eine Liste im RAM geführt?

    Und wenn ja, dann könnte man ja ein Out of Memory erzeugen, in dem man einfach Millionen solcher Prozesse der Reihe nach startet, einen unique connection name anfordert und dann den Prozess gleich wieder beendet.
    Da D-Bus verhindern muss, dass der gleiche unique connection name noch einmal verwendet wird, z.B. in Form so einer Liste, wird zwangsläufig die Liste anwachsen müssen bis irgendwann der Speicherplatz aus geht.

    Ist D-Bus wirklich mit so einem Schwachpunkt designed?

    Oder ist das anders gelöst, z.B. das der unique connection name nur eine weiterlaufende Nummer ist, die praktisch ins unendliche läuft?
    D.h. immer wenn ein Prozess eine unique connection name benötigt, wird der Zähler um 1 inkrementiert und unique connection name mit einer kleineren Nummer können nicht mehr erzeugt werden.
    Beim Neustart der Session wird der Zähler dann wieder auf 0 zurückgesetzt und es geht von vorne los.


Log in to reply