]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - net/core/scm.c
CRED: Wrap task credential accesses in the networking subsystem
[net-next-2.6.git] / net / core / scm.c
index 10f5c65f6a470cc914de500b43d63990e89db1b6..4681d8f9b45b3f756cb511362df7ed09ae74abc5 100644 (file)
 static __inline__ int scm_check_creds(struct ucred *creds)
 {
        if ((creds->pid == task_tgid_vnr(current) || capable(CAP_SYS_ADMIN)) &&
-           ((creds->uid == current->uid || creds->uid == current->euid ||
-             creds->uid == current->suid) || capable(CAP_SETUID)) &&
-           ((creds->gid == current->gid || creds->gid == current->egid ||
-             creds->gid == current->sgid) || capable(CAP_SETGID))) {
+           ((creds->uid == current_uid()   || creds->uid == current_euid() ||
+             creds->uid == current_suid()) || capable(CAP_SETUID)) &&
+           ((creds->gid == current_gid()   || creds->gid == current_egid() ||
+             creds->gid == current_sgid()) || capable(CAP_SETGID))) {
               return 0;
        }
        return -EPERM;