Skip to content

WebAdmin visiting roster when item has no groups #4564

@badlop

Description

@badlop

Environment

  • ejabberd version: 26.03

Reproduction

Regsiter two accounts, add a rosteritem with Groups = []:

mod_admin_extra:add_rosteritem(
  <<"user1">>, <<"localhost">>, 
  <<"user2">>, <<"localhost">>, <<"user2">>, [], <<"both">>).

When visiting in WebAdmin the roster page of that account, it crashes:

Details
2026-04-11 13:52:39.767161+02:00 [error] Hook webadmin_page_hostuser crashed when running mod_roster:webadmin_page_hostuser/4:
** exception error: no match of right hand side value []
   in function  mod_roster:'-make_webadmin_roster_table/4-fun-1-'/5 (/home/aaa/git/ejabberd/src/mod_roster.erl:1164)
   in call from lists:map_1/2 (lists.erl:2390)
   in call from lists:map/2 (lists.erl:2385)
   in call from mod_roster:make_webadmin_roster_table/4 (/home/aaa/git/ejabberd/src/mod_roster.erl:1150)
   in call from mod_roster:webadmin_page_hostuser/4 (/home/aaa/git/ejabberd/src/mod_roster.erl:1123)
   in call from ejabberd_hooks:safe_apply/4 (/home/aaa/git/ejabberd/src/ejabberd_hooks.erl:456)
   in call from ejabberd_hooks:run_fold1/4 (/home/aaa/git/ejabberd/src/ejabberd_hooks.erl:403)
   in call from ejabberd_web_admin:process_admin/3 (/home/aaa/git/ejabberd/src/ejabberd_web_admin.erl:667)
** Arg 1 = []
** Arg 2 = <<"localhost">>
** Arg 3 = <<"admin">>
** Arg 4 = {request,'GET',
               [<<"roster">>],
...

Bug description

The problem is that make_webadmin_roster_table expects that the list of groups has at least an item.

Metadata

Metadata

Assignees

Type

No fields configured for Bug.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions