View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0005052 | unreal | ircd | public | 2018-01-05 16:01 | 2018-03-25 13:42 |
Reporter | Skizzerz | Assigned To | syzop | ||
Priority | low | Severity | crash | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 4.0.17 | ||||
Fixed in Version | 4.0.18 | ||||
Summary | 0005052: Segfault when parsing poorly-formed conf file | ||||
Description | Certain options (I tried with set::hide-ban-reason, but others may cause issues as well) will cause segfaults if their value is not specified in unrealircd.conf. Ideally, these will cause the program to display a useful error message rather than simply crashing so that the sysadmin knows what to fix in the conf file. | ||||
Steps To Reproduce | 1. Add the following to unrealircd.conf: set { hide-ban-reason; // note: the proper way to specify this is hide-ban-reason yes; -- omitting the "yes" causes segfault }; 2. ./unrealircd start 3. It segfaults. Ideally it would yell at you for getting the conf file wrong instead and point to the line in question. | ||||
Additional Information | Issue comes from attempting to call strdup() on a NULL pointer. Line in question was at s_conf.c:7495: tempiConf.hide_ban_reason = config_checkval(cep->ce_vardata, CFG_YESNO); -- cep->ce_vardata was NULL in this instance. | ||||
Tags | No tags attached. | ||||
3rd party modules | |||||
|
Thanks for the report. There was indeed a missing check :) https://github.com/unrealircd/unrealircd/commit/15bf82d3c1855c027fc9380a7db6a4f02eb202be |
Date Modified | Username | Field | Change |
---|---|---|---|
2018-01-05 16:01 | Skizzerz | New Issue | |
2018-03-25 13:42 | syzop | Assigned To | => syzop |
2018-03-25 13:42 | syzop | Status | new => resolved |
2018-03-25 13:42 | syzop | Resolution | open => fixed |
2018-03-25 13:42 | syzop | Fixed in Version | => 4.0.18 |
2018-03-25 13:42 | syzop | Note Added: 0020070 |