The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Спорная ошибка в systemd, позволяющая повысить привилегии, з..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "Спорная ошибка в systemd, позволяющая повысить привилегии, з..." –1 +/
Сообщение от Аноним84701 (ok), 03-Июл-17, 20:38 
> С того, что strtoul возвращает 0 как в результате ошибки, так и
> в результате корректного преобразования строки "0".


unsigned long int strtoul(const char *nptr, char **endptr, int base);

Хм, а использовать/проверять endptr не позволяют религиозные убеждения (и вообще, душа просит эмуляции старого доброго атоя)?

> If endptr is not NULL, strtoul() stores the address of the first invalid character in *endptr.
> If there were no digits at all, strtoul() stores the original value of nptr in *endptr (and returns 0).
> In particular, if *nptr is not '\0' but **endptr is '\0' on return, the entire string is valid.

Ну или если в более разжеванном виде:
http://www.gnu.org/software/libc/manual/html_node/Parsing-of...
> You should not check for errors by examining the return value of strtol, because the string might be a valid representation of 0l, LONG_MAX, or LONG_MIN. Instead, check whether tailptr points to what you expect after the number (e.g. '\0' if the string should end after the number). You also need to clear errno before the call and check it afterward, in case there was overflow.
>

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Спорная ошибка в systemd, позволяющая повысить привилегии, з..., opennews, 02-Июл-17, 21:18  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру