version 1.102, 2002/08/22 20:57:19 |
version 1.103, 2002/09/10 20:24:47 |
|
|
char buf[1024]; |
char buf[1024]; |
int len, sock; |
int len, sock; |
u_int i; |
u_int i; |
|
uid_t euid; |
|
gid_t egid; |
|
|
for (i = 0; i < sockets_alloc; i++) |
for (i = 0; i < sockets_alloc; i++) |
switch (sockets[i].type) { |
switch (sockets[i].type) { |
|
|
if (sock < 0) { |
if (sock < 0) { |
error("accept from AUTH_SOCKET: %s", |
error("accept from AUTH_SOCKET: %s", |
strerror(errno)); |
strerror(errno)); |
|
break; |
|
} |
|
if (getpeereid(sock, &euid, &egid) < 0) { |
|
error("getpeereid %d failed: %s", |
|
sock, strerror(errno)); |
|
close(sock); |
|
break; |
|
} |
|
if (getuid() != euid) { |
|
error("uid mismatch: " |
|
"peer euid %d != uid %d", |
|
(int) euid, (int) getuid()); |
|
close(sock); |
break; |
break; |
} |
} |
new_socket(AUTH_CONNECTION, sock); |
new_socket(AUTH_CONNECTION, sock); |