Commit 09c3f5d0 authored by Ruslan Kuprieiev's avatar Ruslan Kuprieiev Committed by Pavel Emelyanov

security: add cr_fchown

Signed-off-by: 's avatarRuslan Kuprieiev <kupruser@gmail.com>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent df301b7e
...@@ -8,5 +8,6 @@ extern int restrict_uid(unsigned int uid, unsigned int gid); ...@@ -8,5 +8,6 @@ extern int restrict_uid(unsigned int uid, unsigned int gid);
extern bool may_dump(struct proc_status_creds *); extern bool may_dump(struct proc_status_creds *);
extern bool may_restore(struct _CredsEntry *); extern bool may_restore(struct _CredsEntry *);
extern bool cr_user_is_root(void); extern bool cr_user_is_root(void);
extern int cr_fchown(int fd);
#endif /* __CR_SECURITY_H__ */ #endif /* __CR_SECURITY_H__ */
...@@ -169,3 +169,16 @@ bool may_restore(CredsEntry *creds) ...@@ -169,3 +169,16 @@ bool may_restore(CredsEntry *creds)
check_groups(creds->groups, creds->n_groups) && check_groups(creds->groups, creds->n_groups) &&
check_caps(creds->cap_inh, creds->cap_eff, creds->cap_prm); check_caps(creds->cap_inh, creds->cap_eff, creds->cap_prm);
} }
int cr_fchown(int fd)
{
if (cr_user_is_root())
return 0;
if (fchown(fd, cr_uid, cr_gid)) {
pr_perror("Can't chown to (%u,%u)", cr_uid, cr_gid);
return -1;
}
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment