OpenCoverage

bsd-getpeereid.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssh/src/openbsd-compat/bsd-getpeereid.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/*-
2 * Copyright (c) 2002,2004 Damien Miller <djm@mindrot.org>-
3 *-
4 * Permission to use, copy, modify, and distribute this software for any-
5 * purpose with or without fee is hereby granted, provided that the above-
6 * copyright notice and this permission notice appear in all copies.-
7 *-
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES-
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF-
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR-
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES-
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN-
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF-
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.-
15 */-
16-
17#include "includes.h"-
18-
19#if !defined(HAVE_GETPEEREID)-
20-
21#include <sys/types.h>-
22#include <sys/socket.h>-
23-
24#include <unistd.h>-
25-
26#if defined(SO_PEERCRED)-
27int-
28getpeereid(int s, uid_t *euid, gid_t *gid)-
29{-
30 struct ucred cred;-
31 socklen_t len = sizeof(cred);-
32-
33 if (getsockopt(s, SOL_SOCKET, SO_PEERCRED, &cred, &len) < 0)
getsockopt(s, ...red, &len) < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
34 return (-1);
never executed: return (-1);
0
35 *euid = cred.uid;-
36 *gid = cred.gid;-
37-
38 return (0);
never executed: return (0);
0
39}-
40#elif defined(HAVE_GETPEERUCRED)-
41-
42#ifdef HAVE_UCRED_H-
43# include <ucred.h>-
44#endif-
45-
46int-
47getpeereid(int s, uid_t *euid, gid_t *gid)-
48{-
49 ucred_t *ucred = NULL;-
50-
51 if (getpeerucred(s, &ucred) == -1)-
52 return (-1);-
53 if ((*euid = ucred_geteuid(ucred)) == -1)-
54 return (-1);-
55 if ((*gid = ucred_getrgid(ucred)) == -1)-
56 return (-1);-
57-
58 ucred_free(ucred);-
59-
60 return (0);-
61}-
62#else-
63int-
64getpeereid(int s, uid_t *euid, gid_t *gid)-
65{-
66 *euid = geteuid();-
67 *gid = getgid();-
68-
69 return (0);-
70}-
71#endif /* defined(SO_PEERCRED) */-
72-
73#endif /* !defined(HAVE_GETPEEREID) */-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2