Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
1fff03ef
L
libvirt
项目概览
openeuler
/
libvirt
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
libvirt
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
1fff03ef
编写于
13年前
作者:
D
Daniel P. Berrange
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add virGetGroupName to convert from GID to group name
上级
8c9a2954
master
openEuler-20.03-LTS
openEuler-20.09
v0.10.2-maint
v0.9.11-maint
v0.9.12-maint
v1.0.0-maint
v1.0.1-maint
v1.0.2-maint
v1.0.3-maint
v1.0.4-maint
v1.0.5-maint
v1.0.6-maint
v1.1.0-maint
v1.1.1-maint
v1.1.2-maint
v1.1.3-maint
v1.1.4-maint
v1.2.0-maint
v1.2.1-maint
v1.2.10-maint
v1.2.11-maint
v1.2.12-maint
v1.2.13-maint
v1.2.14-maint
v1.2.15-maint
v1.2.16-maint
v1.2.17-maint
v1.2.18-maint
v1.2.19-maint
v1.2.2-maint
v1.2.20-maint
v1.2.21-maint
v1.2.3-maint
v1.2.4-maint
v1.2.5-maint
v1.2.6-maint
v1.2.7-maint
v1.2.8-maint
v1.2.9-maint
v1.3.0-maint
v1.3.1-maint
v1.3.2-maint
v1.3.3-maint
v1.3.4-maint
v1.3.5-maint
v2.0-maint
v2.1-maint
v2.2-maint
v3.0-maint
v3.2-maint
v3.7-maint
v4.1-maint
v4.10-maint
v4.2-maint
v4.3-maint
v4.4-maint
v4.5-maint
v4.6-maint
v4.7-maint
v4.8-maint
v4.9-maint
v5.0-maint
v5.1-maint
v5.1.0-maint
v5.2-maint
v5.3-maint
v6.5.0-rc2
v6.5.0-rc1
v6.4.0
v6.4.0-rc1
v6.3.0
v6.3.0-rc1
v6.2.0
v6.2.0-rc1
v6.1.0
v6.1.0-rc2
v6.1.0-rc1
v6.0.0
v6.0.0-rc2
v6.0.0-rc1
v5.10.0
v5.10.0-rc2
v5.10.0-rc1
v5.9.0
v5.9.0-rc1
v5.8.0
v5.8.0-rc2
v5.8.0-rc1
v5.7.0
v5.7.0-rc2
v5.7.0-rc1
v5.6.0
v5.6.0-rc2
v5.6.0-rc1
v5.5.0
v5.5.0-rc2
v5.5.0-rc1
v5.4.0
v5.4.0-rc2
v5.4.0-rc1
v5.3.0
v5.3.0-rc2
v5.3.0-rc1
v5.2.0
v5.2.0-rc2
v5.2.0-rc1
v5.1.0
v5.1.0-rc2
v5.1.0-rc1
v5.0.0
v5.0.0-rc2
v5.0.0-rc1
v4.10.0
v4.10.0-rc2
v4.10.0-rc1
v4.9.0
v4.9.0-rc1
v4.8.0
v4.8.0-rc2
v4.8.0-rc1
v4.7.0
v4.7.0-rc2
v4.7.0-rc1
v4.6.0
v4.6.0-rc2
v4.6.0-rc1
v4.5.0
v4.5.0-rc2
v4.5.0-rc1
v4.4.0
v4.4.0-rc2
v4.4.0-rc1
v4.3.0
v4.3.0-rc2
v4.3.0-rc1
v4.2.0
v4.2.0-rc2
v4.2.0-rc1
v4.1.0
v4.1.0-rc2
v4.1.0-rc1
v4.0.0
v4.0.0-rc2
v4.0.0-rc1
v3.10.0
v3.10.0-rc2
v3.10.0-rc1
v3.9.0
v3.9.0-rc2
v3.9.0-rc1
v3.8.0
v3.8.0-rc1
v3.7.0
v3.7.0-rc2
v3.7.0-rc1
v3.6.0
v3.6.0-rc2
v3.6.0-rc1
v3.5.0
v3.5.0-rc2
v3.5.0-rc1
v3.4.0
v3.4.0-rc2
v3.4.0-rc1
v3.3.0
v3.3.0-rc2
v3.3.0-rc1
v3.2.1
v3.2.0
v3.2.0-rc2
v3.2.0-rc1
v3.1.0
v3.1.0-rc2
v3.1.0-rc1
v3.0.0
v3.0.0-rc2
v3.0.0-rc1
v2.5.0
v2.5.0-rc2
v2.5.0-rc1
v2.4.0
v2.4.0-rc2
v2.4.0-rc1
v2.3.0
v2.3.0-rc2
v2.3.0-rc1
v2.2.1
v2.2.0
v2.2.0-rc2
v2.2.0-rc1
v2.1.0
v2.1.0-rc1
v2.0.0
v2.0.0-rc2
v2.0.0-rc1
v1.3.5
v1.3.5-rc1
v1.3.4
v1.3.4-rc2
v1.3.4-rc1
v1.3.3.3
v1.3.3.2
v1.3.3.1
v1.3.3
v1.3.3-rc2
v1.3.3-rc1
v1.3.2
v1.3.2-rc2
v1.3.2-rc1
v1.3.1
v1.3.1-rc2
v1.3.1-rc1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.21
v1.2.21-rc2
v1.2.21-rc1
v1.2.20
v1.2.20-rc2
v1.2.20-rc1
v1.2.19
v1.2.19-rc2
v1.2.19-rc1
v1.2.18.4
v1.2.18.3
v1.2.18.2
v1.2.18.1
v1.2.18
v1.2.18-rc2
v1.2.18-rc1
v1.2.17
v1.2.17-rc2
v1.2.17-rc1
v1.2.16
v1.2.16-rc2
v1.2.16-rc1
v1.2.15
v1.2.15-rc2
v1.2.15-rc1
v1.2.14
v1.2.14-rc2
v1.2.14-rc1
v1.2.13.2
v1.2.13.1
v1.2.13
v1.2.13-rc2
v1.2.13-rc1
v1.2.12
v1.2.12-rc2
v1.2.12-rc1
v1.2.11
v1.2.11-rc2
v1.2.11-rc1
v1.2.10
v1.2.10-rc2
v1.2.10-rc1
v1.2.9.3
v1.2.9.2
v1.2.9.1
v1.2.9
v1.2.9-rc2
v1.2.9-rc1
v1.2.8
v1.2.8-rc2
v1.2.8-rc1
v1.2.7
v1.2.7-rc2
v1.2.7-rc1
v1.2.6
v1.2.6-rc2
v1.2.6-rc1
v1.2.5
v1.2.5-rc2
v1.2.5-rc1
v1.2.4
v1.2.4-rc2
v1.2.4-rc1
v1.2.3
v1.2.3-rc2
v1.2.3-rc1
v1.2.2
v1.2.2-rc2
v1.2.2-rc1
v1.2.1
v1.2.1-rc2
v1.2.1-rc1
v1.2.0
v1.2.0-rc2
v1.2.0-rc1
v1.1.4
v1.1.4-rc2
v1.1.4-rc1
v1.1.3.9
v1.1.3.8
v1.1.3.7
v1.1.3.6
v1.1.3.5
v1.1.3.4
v1.1.3.3
v1.1.3.2
v1.1.3.1
v1.1.3
v1.1.3-rc2
v1.1.3-rc1
v1.1.2
v1.1.2-rc2
v1.1.2-rc1
v1.1.1
v1.1.1-rc2
v1.1.1-rc1
v1.1.0
v1.1.0-rc2
v1.1.0-rc1
v1.0.6
v1.0.6-rc2
v1.0.6-rc1
v1.0.5.9
v1.0.5.8
v1.0.5.7
v1.0.5.6
v1.0.5.5
v1.0.5.4
v1.0.5.3
v1.0.5.2
v1.0.5.1
v1.0.5
v1.0.5-rc1
v1.0.4
v1.0.4-rc2
v1.0.4-rc1
v1.0.3
v1.0.3-rc2
v1.0.3-rc1
v1.0.2
v1.0.2-rc2
v1.0.2-rc1
v1.0.1
v1.0.1-rc2
v1.0.1-rc1
v1.0.0
v1.0.0-rc3
v1.0.0-rc2
v1.0.0-rc1
v0.10.2.8
v0.10.2.7
v0.10.2.6
v0.10.2.5
v0.10.2.4
v0.10.2.3
v0.10.2.2
v0.10.2.1
v0.10.2
v0.10.2-rc2
v0.10.2-rc1
v0.10.1
v0.10.0
v0.10.0-rc2
v0.10.0-rc1
v0.10.0-rc0
v0.9.13
v0.9.13-rc2
v0.9.13-rc1
v0.9.12.3
v0.9.12.2
v0.9.12.1
v0.9.12
v0.9.12-rc2
v0.9.12-rc1
v0.9.11.10
v0.9.11.9
v0.9.11.8
v0.9.11.7
v0.9.11.6
v0.9.11.5
v0.9.11.4
v0.9.11.3
v0.9.11.2
v0.9.11.1
v0.9.11
v0.9.11-rc2
v0.9.11-rc1
v0.9.10
v0.9.10-rc2
v0.9.10-rc1
CVE-2017-1000256
CVE-2017-2635
CVE-2016-5008
CVE-2015-5313
CVE-2015-5247-3
CVE-2015-5247-2
CVE-2015-5247-1
CVE-2015-0236-2
CVE-2015-0236-1
CVE-2014-8136
CVE-2014-8135
CVE-2014-8131-2
CVE-2014-8131-1
CVE-2014-7823
CVE-2014-3657
CVE-2014-3633
CVE-2014-1447-2
CVE-2014-1447-1
CVE-2014-0179
CVE-2014-0028
CVE-2013-7336
CVE-2013-6458-4
CVE-2013-6458-3
CVE-2013-6458-2
CVE-2013-6458-1
CVE-2013-6457
CVE-2013-6436
CVE-2013-5651
CVE-2013-4401
CVE-2013-4400-3
CVE-2013-4400-2
CVE-2013-4400-1
CVE-2013-4399
CVE-2013-4311
CVE-2013-4297
CVE-2013-4296
CVE-2013-4292
CVE-2013-4291
CVE-2013-4239
CVE-2013-4154
CVE-2013-4153
CVE-2013-2230
CVE-2013-2218
CVE-2013-1962
CVE-2013-0170
CVE-2012-4423
CVE-2012-3445
CVE-2012-3411
无相关合并请求
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
57 addition
and
0 deletion
+57
-0
src/libvirt_private.syms
src/libvirt_private.syms
+1
-0
src/util/util.c
src/util/util.c
+55
-0
src/util/util.h
src/util/util.h
+1
-0
未找到文件。
src/libvirt_private.syms
浏览文件 @
1fff03ef
...
...
@@ -1112,6 +1112,7 @@ virFindFileInPath;
virFormatMacAddr;
virGenerateMacAddr;
virGetGroupID;
virGetGroupName;
virGetHostname;
virGetUserDirectory;
virGetUserID;
...
...
This diff is collapsed.
Click to expand it.
src/util/util.c
浏览文件 @
1fff03ef
...
...
@@ -2187,6 +2187,56 @@ static char *virGetUserEnt(uid_t uid,
return
ret
;
}
static
char
*
virGetGroupEnt
(
gid_t
gid
)
{
char
*
strbuf
;
char
*
ret
;
struct
group
grbuf
;
struct
group
*
gr
=
NULL
;
long
val
=
sysconf
(
_SC_GETGR_R_SIZE_MAX
);
size_t
strbuflen
=
val
;
int
rc
;
/* sysconf is a hint; if it fails, fall back to a reasonable size */
if
(
val
<
0
)
strbuflen
=
1024
;
if
(
VIR_ALLOC_N
(
strbuf
,
strbuflen
)
<
0
)
{
virReportOOMError
();
return
NULL
;
}
/*
* From the manpage (terrifying but true):
*
* ERRORS
* 0 or ENOENT or ESRCH or EBADF or EPERM or ...
* The given name or gid was not found.
*/
while
((
rc
=
getgrgid_r
(
gid
,
&
grbuf
,
strbuf
,
strbuflen
,
&
gr
))
==
ERANGE
)
{
if
(
VIR_RESIZE_N
(
strbuf
,
strbuflen
,
strbuflen
,
strbuflen
)
<
0
)
{
virReportOOMError
();
VIR_FREE
(
strbuf
);
return
NULL
;
}
}
if
(
rc
!=
0
||
gr
==
NULL
)
{
virReportSystemError
(
rc
,
_
(
"Failed to find group record for gid '%u'"
),
(
unsigned
int
)
gid
);
VIR_FREE
(
strbuf
);
return
NULL
;
}
ret
=
strdup
(
gr
->
gr_name
);
VIR_FREE
(
strbuf
);
if
(
!
ret
)
virReportOOMError
();
return
ret
;
}
char
*
virGetUserDirectory
(
uid_t
uid
)
{
return
virGetUserEnt
(
uid
,
VIR_USER_ENT_DIRECTORY
);
...
...
@@ -2197,6 +2247,11 @@ char *virGetUserName(uid_t uid)
return
virGetUserEnt
(
uid
,
VIR_USER_ENT_NAME
);
}
char
*
virGetGroupName
(
gid_t
gid
)
{
return
virGetGroupEnt
(
gid
);
}
int
virGetUserID
(
const
char
*
name
,
uid_t
*
uid
)
...
...
This diff is collapsed.
Click to expand it.
src/util/util.h
浏览文件 @
1fff03ef
...
...
@@ -236,6 +236,7 @@ int virKillProcess(pid_t pid, int sig);
char
*
virGetUserDirectory
(
uid_t
uid
);
char
*
virGetUserName
(
uid_t
uid
);
char
*
virGetGroupName
(
gid_t
gid
);
int
virGetUserID
(
const
char
*
name
,
uid_t
*
uid
)
ATTRIBUTE_RETURN_CHECK
;
int
virGetGroupID
(
const
char
*
name
,
...
...
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录
反馈
建议
客服
返回
顶部