solanum-vs-hackint-and-char.../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 db05a36210

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 common.h: raison d'être is gone, so out it goes. 2016-03-23 09:33:56 -05:00
getopt.c getopt: don't modify argv as it breaks restart() 2016-04-25 23:32:18 +01:00
hash.c hash.c: Save some more bytes 2016-03-27 06:29:10 -04:00
hook.c Add hook for when rehash is called. 2016-04-06 05:43:54 -05:00
hostmask.c ipv4_from_ipv6: move to librb 2016-04-08 03:49:23 -05:00
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 logger: add idebug 2016-03-28 19:06:31 -05:00
main.c ircd: add main.c stub executable 2016-01-06 23:57:35 -06:00
Makefile.am Revert "Implement the netsplit batch type." 2016-04-16 11:05:00 -05:00
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 typedef-ify rb_radixtree for consistency. 2016-03-23 08:32:22 -05:00
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 common.h: raison d'être is gone, so out it goes. 2016-03-23 09:33:56 -05:00
parse.c ircd: don't send ERR_NOTREGISTERED to servers 2016-04-24 17:41:44 +01:00
privilege.c Use rb_* versions of nonportable string functions 2016-04-05 05:39:59 -05:00
ratelimit.c rename src to ircd, libcore to libircd 2016-01-06 01:16:08 -06:00
reject.c Remove $Id tags from everything. 2016-03-06 02:47:27 -06:00
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 common.h: raison d'être is gone, so out it goes. 2016-03-23 09:33:56 -05:00
send.c fix privmsg/notice send functions to use variable argument lists properly 2016-12-04 19:41:07 +00:00
snomask.c Remove $Id tags from everything. 2016-03-06 02:47:27 -06:00
sslproc.c strcpy: mass-migrate to strlcpy where appropriate 2016-05-15 03:58:44 +00:00
substitution.c Use rb_* versions of nonportable string functions 2016-04-05 05:39:59 -05:00
supported.c supported: fix up CHANTYPES 2016-09-16 14:00:00 -05:00
tgchange.c rename src to ircd, libcore to libircd 2016-01-06 01:16:08 -06:00
version.c.SH version.c.SH: Fix build 2016-04-09 06:05:08 -04:00
whowas.c typedef-ify rb_radixtree for consistency. 2016-03-23 08:32:22 -05:00
wsproc.c cppcheck: fix various warnings/errors 2016-10-28 20:13:36 +01:00