mirror of
https://github.com/opensim/opensim.git
synced 2026-08-06 17:32:42 +08:00
Fix perms when linking an object. Set root part perms to the perms
of the link set to make the build floater behave consistently. Fixes permissions exploit introduced on 23 August.
This commit is contained in:
@@ -4497,20 +4497,20 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
bool update = false;
|
||||
|
||||
if (BaseMask != source.BaseMask ||
|
||||
OwnerMask != source.OwnerMask ||
|
||||
GroupMask != source.GroupMask ||
|
||||
EveryoneMask != source.EveryoneMask ||
|
||||
NextOwnerMask != source.NextOwnerMask)
|
||||
update = true;
|
||||
uint prevOwnerMask = OwnerMask;
|
||||
uint prevGroupMask = GroupMask;
|
||||
uint prevEveryoneMask = EveryoneMask;
|
||||
uint prevNextOwnerMask = NextOwnerMask;
|
||||
|
||||
BaseMask = source.BaseMask;
|
||||
OwnerMask = source.OwnerMask;
|
||||
GroupMask = source.GroupMask;
|
||||
EveryoneMask = source.EveryoneMask;
|
||||
NextOwnerMask = source.NextOwnerMask;
|
||||
OwnerMask = source.OwnerMask & BaseMask;
|
||||
GroupMask = source.GroupMask & BaseMask;
|
||||
EveryoneMask = source.EveryoneMask & BaseMask;
|
||||
NextOwnerMask = source.NextOwnerMask & BaseMask;
|
||||
|
||||
if (update)
|
||||
if (OwnerMask != prevOwnerMask ||
|
||||
GroupMask != prevGroupMask ||
|
||||
EveryoneMask != prevEveryoneMask ||
|
||||
NextOwnerMask != prevNextOwnerMask)
|
||||
SendFullUpdateToAllClients();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user