View Issue Details

IDProjectCategoryView StatusLast Update
0004327unrealmodule apipublic2014-08-23 06:42
Reporterhyperi0n Assigned Totmcarthur  
PrioritynormalSeveritycrashReproducibilityhave not tried
Status resolvedResolutionfixed 
PlatformArchlinux x86_64OSLinuxOS Version3.16.1
Product Version3.4-alpha1 
Fixed in Version3.4-alpha2 
Summary0004327: Crash when unloading mode +f
DescriptionSIGABRT, Aborted when i try to unload module floodprot +f

here is the bt :

#0 0x00007f5b7cbd3d67 in raise () from /usr/lib/libc.so.6
#1 0x00007f5b7cbd5118 in abort () from /usr/lib/libc.so.6
#2 0x000000000044742f in unload_extcmode_commit (cmode=0x586) at extcmodes.c:230
#3 0x00000000004474e3 in unload_all_unused_extcmodes () at extcmodes.c:280
#4 0x00000000004370e4 in rehash_internal (cptr=cptr@entry=0x25ed9f0, sptr=sptr@entry=0x25ed9f0, sig=<optimized out>)
    at s_conf.c:9356
#5 0x00000000004371c5 in rehash (cptr=cptr@entry=0x25ed9f0, sptr=sptr@entry=0x25ed9f0, sig=<optimized out>)
    at s_conf.c:9330
#6 0x000000000043bbf6 in m_rehash (cptr=0x25ed9f0, sptr=0x25ed9f0, parc=0x1, parv=0x74c040 <para>) at s_serv.c:818
#7 0x00000000004212b7 in parse (cptr=0x25ed9f0, buffer=0x7fff033bd340 "rehash",
    bufend=0x202 <error: Cannot access memory at address 0x202>) at parse.c:449
0000008 0x000000000042051b in dopacket (cptr=cptr@entry=0x25ed9f0, buffer=buffer@entry=0x7fff033bd340 "rehash",
    length=<optimized out>) at packet.c:65
#9 0x0000000000412bbe in parse_client_queued (cptr=cptr@entry=0x25ed9f0) at s_bsd.c:1395
#10 0x0000000000412d88 in read_packet (fd=0x5, revents=<optimized out>, data=0x25ed9f0) at s_bsd.c:1478
#11 0x000000000043786f in fd_select (delay=delay@entry=0x3e8) at s_dispatch.c:482
#12 0x0000000000411044 in main (argc=0x0, argv=<optimized out>) at ircd.c:1663
#13 0x00007f5b7cbc0000 in __libc_start_main () from /usr/lib/libc.so.6
#14 0x00000000004114d8 in _start ()
Steps To Reproducecomment line : loadmodule "modules/chanmodes/floodprot"; on modules.conf
rehash
TagsNo tags attached.
3rd party modules

Activities

tmcarthur

2014-08-19 22:16

reporter   ~0018231

Having a look - thanks!

hyperi0n

2014-08-21 23:32

reporter   ~0018234

Here is ircd.log:

FATAL ERROR: ChannelMode module for chanmode +%c is misbehaving:
all chanmode modules with parameters should be tagged PERManent.

I guess the correct line to add in floodprod.c (line 120) is:
ModuleSetOptions(modinfo->handle, MOD_OPT_PERM, 1);

That way the module is impossible to unload.

tmcarthur

2014-08-23 06:41

reporter   ~0018235

Fixed - thanks for report and testing just pushed fix.

tmcarthur

2014-08-23 06:41

reporter   ~0018236

As an aside - we probably want to make these modules unloadable in future, this is just a stop-gap, to permit incremental updating even of these more complex features.

Issue History

Date Modified Username Field Change
2014-08-19 21:53 hyperi0n New Issue
2014-08-19 22:16 tmcarthur Note Added: 0018231
2014-08-19 22:16 tmcarthur Assigned To => tmcarthur
2014-08-19 22:16 tmcarthur Status new => acknowledged
2014-08-21 23:32 hyperi0n Note Added: 0018234
2014-08-23 06:41 tmcarthur Note Added: 0018235
2014-08-23 06:41 tmcarthur Note Added: 0018236
2014-08-23 06:41 tmcarthur Status acknowledged => resolved
2014-08-23 06:41 tmcarthur Fixed in Version => 3.4-alpha2
2014-08-23 06:41 tmcarthur Resolution open => fixed
2017-01-06 15:48 syzop Category module => module api