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