Skip to content

Commit a645a52

Browse files
committed
Use LOCAL_PEERCRED option instead SO_PEERCRED where appropriate
1 parent 771f136 commit a645a52

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

src/responder/common/responder_common.c

+5
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,13 @@ static errno_t get_client_cred(struct cli_ctx *cctx)
112112
cctx->creds->ucred.gid = -1;
113113
cctx->creds->ucred.pid = -1;
114114

115+
#ifdef LOCAL_PEERCRED
116+
ret = getsockopt(cctx->cfd, SOL_SOCKET, LOCAL_PEERCRED, &cctx->creds->ucred,
117+
&client_cred_len);
118+
#else
115119
ret = getsockopt(cctx->cfd, SOL_SOCKET, SO_PEERCRED, &cctx->creds->ucred,
116120
&client_cred_len);
121+
#endif
117122
if (ret != EOK) {
118123
ret = errno;
119124
DEBUG(SSSDBG_CRIT_FAILURE,

src/sss_client/common.c

+5
Original file line numberDiff line numberDiff line change
@@ -1034,8 +1034,13 @@ static errno_t check_server_cred(int sockfd)
10341034
return EFAULT;
10351035
}
10361036

1037+
#ifdef LOCAL_PEERCRED
1038+
ret = getsockopt(sockfd, SOL_SOCKET, LOCAL_PEERCRED, &server_cred,
1039+
&server_cred_len);
1040+
#else
10371041
ret = getsockopt(sockfd, SOL_SOCKET, SO_PEERCRED, &server_cred,
10381042
&server_cred_len);
1043+
#endif
10391044
if (ret != 0) {
10401045
return errno;
10411046
}

src/tests/intg/getsockopt_wrapper.c

+4
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414
#include <fcntl.h>
1515
#include <unistd.h>
1616

17+
#if !defined(SO_PEERCRED) && defined(LOCAL_PEERCRED)
18+
#define SO_PEERCRED LOCAL_PEERCRED
19+
#endif
20+
1721
static bool is_dbus_socket(int fd)
1822
{
1923
int ret;

0 commit comments

Comments
 (0)