diff options
author | Hsiu-Chang Chen <hsiuchangchen@google.com> | 2022-09-23 15:02:51 +0800 |
---|---|---|
committer | Hsiu-Chang Chen <hsiuchangchen@google.com> | 2022-10-18 07:03:39 +0000 |
commit | 2ea665994f2a9f67d3c7c2c0e61e9829df66b1fe (patch) | |
tree | ee19a0880536979909cfb41f333e26c08dfefd92 | |
parent | d160034a823e53847ad110572a730bb8c5bf9226 (diff) | |
download | cnss2-2ea665994f2a9f67d3c7c2c0e61e9829df66b1fe.tar.gz |
Remove the net_admin check in qrtr
Bug: 234311675
Test: avc msg is gone
Change-Id: I81cfc26e421041e3792c1674a62a2153e600934b
-rw-r--r-- | qrtr/Makefile | 4 | ||||
-rw-r--r-- | qrtr/af_qrtr.c | 4 | ||||
-rw-r--r-- | qrtr/ns.c | 4 | ||||
-rw-r--r-- | qrtr/qrtr.c | 4 |
4 files changed, 15 insertions, 1 deletions
diff --git a/qrtr/Makefile b/qrtr/Makefile index 72fe8a3..b6813f2 100644 --- a/qrtr/Makefile +++ b/qrtr/Makefile @@ -4,4 +4,6 @@ obj-$(CONFIG_QRTR) += qrtr.o qrtr-y := af_qrtr.o ns.o qrtr-$(CONFIG_QRTR_DEBUG) += debug.o obj-$(CONFIG_QRTR_MHI) += qrtr-mhi.o -qrtr-mhi-y := mhi.o
\ No newline at end of file +qrtr-mhi-y := mhi.o + +ccflags-y += -DCONFIG_WCN_GOOGLE diff --git a/qrtr/af_qrtr.c b/qrtr/af_qrtr.c index 0ea15be..8b7253a 100644 --- a/qrtr/af_qrtr.c +++ b/qrtr/af_qrtr.c @@ -1480,7 +1480,11 @@ static int qrtr_port_assign(struct qrtr_sock *ipc, int *port) if (rc >= 0) *port = rc; } else if (*port < QRTR_MIN_EPH_SOCKET && +#if IS_ENABLED(CONFIG_WCN_GOOGLE) + !(ns_capable_noaudit(&init_user_ns, CAP_NET_ADMIN) || +#else !(capable(CAP_NET_ADMIN) || +#endif in_egroup_p(AID_VENDOR_QRTR) || in_egroup_p(GLOBAL_ROOT_GID))) { rc = -EACCES; @@ -784,7 +784,11 @@ void qrtr_ns_init(void) goto err_wq; } +#if IS_ENABLED(CONFIG_WCN_GOOGLE) + sock_setsockopt(qrtr_ns.sock, SOL_SOCKET, SO_RCVBUF, +#else sock_setsockopt(qrtr_ns.sock, SOL_SOCKET, SO_RCVBUFFORCE, +#endif KERNEL_SOCKPTR((void *)&rx_buf_sz), sizeof(rx_buf_sz)); qrtr_ns.bcast_sq.sq_family = AF_QIPCRTR; diff --git a/qrtr/qrtr.c b/qrtr/qrtr.c index 7bbdf15..782386b 100644 --- a/qrtr/qrtr.c +++ b/qrtr/qrtr.c @@ -1454,7 +1454,11 @@ static int qrtr_port_assign(struct qrtr_sock *ipc, int *port) if (rc >= 0) *port = rc; } else if (*port < QRTR_MIN_EPH_SOCKET && +#if IS_ENABLED(CONFIG_WCN_GOOGLE) + !(ns_capable_noaudit(&init_user_ns, CAP_NET_ADMIN) || +#else !(capable(CAP_NET_ADMIN) || +#endif in_egroup_p(AID_VENDOR_QRTR) || in_egroup_p(GLOBAL_ROOT_GID))) { rc = -EACCES; |