Подробности
[В начало]
Проблема в стандарте № S0177
Краткое описание
Функция getgrouplist() возвращает 1, если пользователя нет в системе
Подробное описание
В соответствии со стандартом LSB 3.1, если пользователя нет в системе, то getgrouplist() должна возвращать 0 и устанавливать переменную, на которую ссылается ngroups в 0.
Но в следующем коде, эта функция возвращает 1 и устанавливает переменную, на которую ссылается ngroups в 1,
что противоречит стандарту.
#include <stdio.h>
#include <grp.h>
#include <sys/types.h>
int main(int argc, char* argv[])
{
int res;
gid_t groups[20];
int ngroups=20;
res = getgrouplist("BadBadBadUser", 100, groups, &ngroups);
printf("res=%d\n", res);
printf("ngroups=%d\n", ngroups);
return 0;
}
Раздел стандарта
Linux Standard Base Core Specification 3.1, Chapter 13. Base Libraries, 13.5. Interface Definitions for libc, description of bind_textdomain_codeset().
Способы устранения
Исправление стандарта LSB
Ссылки
Ссылок на проблему не найдено
Принято
LSB Bugzilla, 1640
Статус
Исправлена в LSB 3.1 Update 1
[В начало]