summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHsiu-Chang Chen <hsiuchangchen@google.com>2022-09-23 15:02:51 +0800
committerHsiu-Chang Chen <hsiuchangchen@google.com>2022-10-18 07:03:39 +0000
commit2ea665994f2a9f67d3c7c2c0e61e9829df66b1fe (patch)
treeee19a0880536979909cfb41f333e26c08dfefd92
parentd160034a823e53847ad110572a730bb8c5bf9226 (diff)
downloadcnss2-2ea665994f2a9f67d3c7c2c0e61e9829df66b1fe.tar.gz
Remove the net_admin check in qrtr
Bug: 234311675 Test: avc msg is gone Change-Id: I81cfc26e421041e3792c1674a62a2153e600934b
-rw-r--r--qrtr/Makefile4
-rw-r--r--qrtr/af_qrtr.c4
-rw-r--r--qrtr/ns.c4
-rw-r--r--qrtr/qrtr.c4
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;
diff --git a/qrtr/ns.c b/qrtr/ns.c
index 82fd855..bf62103 100644
--- a/qrtr/ns.c
+++ b/qrtr/ns.c
@@ -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;