Auch Supervisoren muessen Mitglieder Ebene sein
Erlaubnis fur SVs entfernt, auf der Ebene senden zu duerfen
ohne Mitglied zu sein. Dies darf jetzt nur noch der CHANNELD
selber und ROOT-Objekte.
Auch ansonsten soll zukuenftig sichergestellt sein, dass
(externe) SVs auch Mitglieder Ebene sind.
Change-Id: I1d42523cbd7ebe8e13ae3339eff5c5b14064d2c8
diff --git a/p/daemon/channeld.c b/p/daemon/channeld.c
index 3ada61c..1e41b81 100644
--- a/p/daemon/channeld.c
+++ b/p/daemon/channeld.c
@@ -688,15 +688,11 @@
if(!pointerp(channels[ch]))
return 0;
- // Dieses Objekt, Supervisor-Objekt und Root-Objekte duerfen auf der Ebene
- // senden, ohne Mitglied zu sein. Das ist die Folge der zurueckgegebenen 2.
- // TODO: Im Falle des SV-Objekts ist das aber IMHO quatsch und sollte
- // entfernt werden.
+ // Dieses Objekt und Root-Objekte duerfen auf der Ebene senden, ohne
+ // Mitglied zu sein. Das ist die Folge der zurueckgegebenen 2.
if ( !previous_object(1) || !extern_call() ||
previous_object(1) == this_object() ||
- (stringp(MASTER_OB(ch)) &&
- previous_object(1) == find_object(MASTER_OB(ch))) ||
- getuid(previous_object(1)) == ROOTID)
+ getuid(previous_object(1)) == ROOTID)
return 2;
// Nur dieses Objekt darf Meldungen im Namen anderer Objekte faken,