Подробности

[В начало]

Проблема в стандарте № 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

[В начало]