@@ -285,15 +285,15 @@ func (r *Inputer) processRoomEvent(
285285
286286 // Check that the auth events of the event are known.
287287 // If they aren't then we will ask the federation API for them.
288- authEvents := gomatrixserverlib .NewAuthEvents (nil )
288+ authEvents , _ := gomatrixserverlib .NewAuthEvents (nil )
289289 knownEvents := map [string ]* types.Event {}
290- if err = r .fetchAuthEvents (ctx , logger , roomInfo , virtualHost , headered , & authEvents , knownEvents , serverRes .ServerNames ); err != nil {
290+ if err = r .fetchAuthEvents (ctx , logger , roomInfo , virtualHost , headered , authEvents , knownEvents , serverRes .ServerNames ); err != nil {
291291 return fmt .Errorf ("r.fetchAuthEvents: %w" , err )
292292 }
293293
294294 // Check if the event is allowed by its auth events. If it isn't then
295295 // we consider the event to be "rejected" — it will still be persisted.
296- if err = gomatrixserverlib .Allowed (event , & authEvents , func (roomID spec.RoomID , senderID spec.SenderID ) (* spec.UserID , error ) {
296+ if err = gomatrixserverlib .Allowed (event , authEvents , func (roomID spec.RoomID , senderID spec.SenderID ) (* spec.UserID , error ) {
297297 return r .Queryer .QueryUserIDForSender (ctx , roomID , senderID )
298298 }); err != nil {
299299 isRejected = true
@@ -640,10 +640,15 @@ func (r *Inputer) processStateBefore(
640640 // At this point, stateBeforeEvent should be populated either by
641641 // the supplied state in the input request, or from the prev events.
642642 // Check whether the event is allowed or not.
643- stateBeforeAuth := gomatrixserverlib .NewAuthEvents (
643+ var stateBeforeAuth * gomatrixserverlib.AuthEvents
644+ stateBeforeAuth , err = gomatrixserverlib .NewAuthEvents (
644645 gomatrixserverlib .ToPDUs (stateBeforeEvent ),
645646 )
646- if rejectionErr = gomatrixserverlib .Allowed (event , & stateBeforeAuth , func (roomID spec.RoomID , senderID spec.SenderID ) (* spec.UserID , error ) {
647+ if err != nil {
648+ rejectionErr = fmt .Errorf ("NewAuthEvents failed: %w" , err )
649+ return
650+ }
651+ if rejectionErr = gomatrixserverlib .Allowed (event , stateBeforeAuth , func (roomID spec.RoomID , senderID spec.SenderID ) (* spec.UserID , error ) {
647652 return r .Queryer .QueryUserIDForSender (ctx , roomID , senderID )
648653 }); rejectionErr != nil {
649654 rejectionErr = fmt .Errorf ("Allowed() failed for stateBeforeEvent: %w" , rejectionErr )
0 commit comments