[devel] I: xorg-server, dbus: SELinux support breaks software
Mikhail Efremov
sem на altlinux.ru
Пн Авг 30 11:16:02 UTC 2010
On Mon, 30 Aug 2010 14:30:20 +0400 Alexey Gladkov wrote:
> > В коде is_selinux_enabled() нет проверки на невозможность прочитать.
>
> 38 /* Drop back to detecting it the long way. */
> 39 fp = fopen("/proc/filesystems", "r");
> 40 if (!fp)
> 41 return -1;
>
> Здесь мы возвращаем -1. Зачем тут -1, почему не goto out; ?
Потому что на самом деле неизвестно, включен ли SELinux. И решать что
делать должен вызывающий код, эта функция не должна принимать таких
решений.
> 44 while ((num = getline(&buf, &len, fp)) != -1) {
> 45 if (strstr(buf, "selinuxfs")) {
> 46 enabled = 1;
> 47 break;
> 48 }
> 49 }
> 50
> 51 if (num < 0)
> 52 goto out;
>
> Дим, проверка есть и в этом случае вернётся 0.
Возможно тут тоже должно быть return -1.
> > Тем не менее, эта функция определена таким образом, что может давать
> > три вида ответа: "да", "нет" и "нет способа определить".
Да, и теперь это даже документировано. Раньше не было, коммит от 18
марта.
--
WBR, Mikhail Efremov
Подробная информация о списке рассылки Devel