> Объясните, пожалуйста, чем так плох systemd? По пунктам, аргументированно.Пункт первый:
Перлы в коде, типа магических строк и прочего:
arg_header = strdup(option+7);strcpy(stpcpy(stpcpy(stpcpy(mempcpy(t, p, fn - p), ".#"), extra), fn), «XXXXXX»);
if (path_is_absolute(option+15))
ret = new(char, (e - slice) + 1 + strlen(name) + 6 + 1);
strcpy(mempcpy(mempcpy(r, f, a + 1), i, b), e);
static int env_append(char **r, char ***k, char **a) {
char **strv_env_unset(char **l, const char *p) {
char **strv_env_set(char **x, const char *p) {
там еще есть интересный пунктик с проверками входных данных - они довольно бессистемны и дубли-"триплируются".
Т.е. классичесая проверка входящего аргумента, потом с этим аргументом вызывается еще что-то, что проверя свои входные данные тем же макаром, потом все это дело парсится, при этом повторяя как минимум часть кода из проверок. Результат используется только частично и только "на месте" и чуть видоизмененный (а иногда и не чуть, а скопипащенный) парсинг проводится в следующем вызове. Хотя казалось бы, разбери один раз, с нормальной проверкой и передавай что-то типа "parsed data struct".
В общем, самосборочный велосипед парсера в действии. Со всеми "вытекающими":
http://www.openwall.com/lists/oss-security/2016/09/28/9
> systemd v209+: local denial-of-service attack
> systemd[1] fails an assertion in manager_invoke_notify_message[2] when a zero-length message is received over its notification socket
Намек на второй пункт претензий:
https://www1.opennet.ru/opennews/art.shtml?num=41301
> В Systemd добавлен код для разбора формата JSON
> В дополнение к уже присутствующей поддержке формата XML
Про классику типа QR кодов и встроенного httpd скромно умолчим.
Третий:
https://lists.freedesktop.org/archives/systemd-devel/2016-Fe...
> * Most configurable timeouts in systemd now expect an argument of "infinity" to turn them off, instead of "0" as before.
А чтобы жизнь медом не казалась
> To maintain backwards compatibility, "0" continues to turn off previously existing timeout settings
или
https://lwn.net/Articles/490413/
> you can still build it for usage outside of systemd systems, and we will support these builds
> officially. In fact, we will be supporting this for a long time
Да, лонг-тайм оказался периодом аж в два года.
Или очередной велосипедизм с элементами гвоздеприбивания колес:
https://lists.freedesktop.org/archives/systemd-devel/2015-Fe...
> When the user presses Ctrl-Alt-Del more than 7x within 2s an immediate reboot is triggered.
>
Хотя в принципе, в долгосрочной перспективе достаточно и первых двух – монстр, которого очень тяжело поддерживать, как-то не является пределом мечтаний. А уж с таким глав-разработчиком …