solanum/ircd
Aaron Jones 41390bfe5f
When a remote MODRESTART command is received, it will pass through the
ENCAP module. The ms_encap function is responsible for dispatching the
command handler and then the modules will eventually be reloaded.

However, if the ENCAP module is reloaded to a different address, the
stack now contains the address of a function that no longer exists.

Also, in this version of the IRCd, the module restarting functionality
was located in a function that is itself located in a module, so things
will also go badly if that module is reloaded to a different address,
too.

Return immediately from the command handler and have the event loop
call the function responsible for reloading the modules instead.

c.f. release/3.5 commit db05a3621058

Reported-by: mniip (Freenode)
2016-12-28 22:08:14 +00:00
..
authproc.c cppcheck: fix various warnings/errors 2016-10-28 20:13:36 +01:00
bandbi.c bandbi: a function that calls exit(3) should be marked noreturn 2016-06-01 20:54:11 +00:00
cache.c free cache emptyline rb_dlink_node, allocated automatically but never freed 2016-10-30 12:05:45 +00:00
capability.c ircd: Fix capability entry name string ownership. 2016-06-21 17:32:28 -07:00
channel.c channel: silence harmless uninitialised variable warning 2016-06-01 20:54:12 +00:00
chmode.c cppcheck: fix various warnings/errors 2016-10-28 20:13:36 +01:00
class.c class: remove unused macros 2016-06-01 20:54:12 +00:00
client.c listener: use exit_client instead of free_client 2016-11-20 21:09:07 +00:00
dns.c dns: make function used only within this unit static 2016-06-01 20:54:12 +00:00
extban.c
getopt.c getopt: don't modify argv as it breaks restart() 2016-04-25 23:32:18 +01:00
hash.c
hook.c
hostmask.c
ircd.c Print initialisation notice before forking 2016-08-24 16:44:04 +00:00
ircd_lexer.l ircd_lexer: fix another crash with the same cause 2016-05-15 00:57:16 +00:00
ircd_parser.y conf_parser: warning fixes 2016-06-18 00:52:54 -05:00
ircd_signal.c ircd_signal: a function that tailcalls a noreturn function should be marked noreturn 2016-06-01 20:54:12 +00:00
listener.c listener: use exit_client instead of free_client 2016-11-20 21:09:07 +00:00
logger.c
main.c
Makefile.am
match.c cppcheck: fix various warnings/errors 2016-10-28 20:13:36 +01:00
modules.c When a remote MODRESTART command is received, it will pass through the 2016-12-28 22:08:14 +00:00
monitor.c
msgbuf.c msgbuf: don't append a ';' unless there are existing tags 2016-12-04 19:41:08 +00:00
newconf.c ircd: introduce 'no-export' links 2016-09-16 17:18:55 -05:00
operhash.c ircd: Fix missing operhash reference decrement from b02a913b. 2016-07-19 23:24:33 +00:00
packet.c
parse.c
privilege.c
ratelimit.c
reject.c
restart.c getopt: don't modify argv as it breaks restart() 2016-04-25 23:32:18 +01:00
s_conf.c supported: add chantypes_update() 2016-09-16 13:49:02 -05:00
s_newconf.c free server_p->certfp, allocated in newconf.c 2016-10-30 11:45:56 +00:00
s_serv.c server_estab: don't try to send to a dead client 2016-11-20 21:41:18 +00:00
s_user.c cppcheck: fix various warnings/errors 2016-10-28 20:13:36 +01:00
scache.c
send.c fix privmsg/notice send functions to use variable argument lists properly 2016-12-04 19:41:07 +00:00
snomask.c
sslproc.c strcpy: mass-migrate to strlcpy where appropriate 2016-05-15 03:58:44 +00:00
substitution.c
supported.c supported: fix up CHANTYPES 2016-09-16 14:00:00 -05:00
tgchange.c
version.c.SH
whowas.c
wsproc.c cppcheck: fix various warnings/errors 2016-10-28 20:13:36 +01:00