Skip to content

Commit 24f0fb1

Browse files
keesKernel Patches Daemon
authored andcommitted
net: Convert proto_ops connect() callbacks to use sockaddr_unspec
Update all struct proto_ops connect() callback function prototypes from "struct sockaddr *" to "struct sockaddr_unspec *" to avoid lying to the compiler about object sizes. Calls into struct proto handlers gain casts that will be removed in the struct proto conversion patch. No binary changes expected. Signed-off-by: Kees Cook <[email protected]>
1 parent 7815e32 commit 24f0fb1

File tree

72 files changed

+109
-106
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+109
-106
lines changed

drivers/block/drbd/drbd_receiver.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@ static struct socket *drbd_try_connect(struct drbd_connection *connection)
458458
* stay C_WF_CONNECTION, don't go Disconnecting! */
459459
disconnect_on_error = 0;
460460
what = "connect";
461-
err = sock->ops->connect(sock, (struct sockaddr *) &peer_in6, peer_addr_len, 0);
461+
err = sock->ops->connect(sock, (struct sockaddr_unspec *) &peer_in6, peer_addr_len, 0);
462462

463463
out:
464464
if (err < 0) {

drivers/infiniband/hw/erdma/erdma_cm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -996,7 +996,7 @@ static int kernel_bindconnect(struct socket *s, struct sockaddr *laddr,
996996
ret = s->ops->bind(s, (struct sockaddr_unspec *)laddr, laddrlen);
997997
if (ret)
998998
return ret;
999-
ret = s->ops->connect(s, raddr, raddrlen, flags);
999+
ret = s->ops->connect(s, (struct sockaddr_unspec *)raddr, raddrlen, flags);
10001000
return ret < 0 ? ret : 0;
10011001
}
10021002

drivers/infiniband/sw/siw/siw_cm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1344,7 +1344,7 @@ static int kernel_bindconnect(struct socket *s, struct sockaddr *laddr,
13441344
if (rv < 0)
13451345
return rv;
13461346

1347-
rv = s->ops->connect(s, raddr, size, flags);
1347+
rv = s->ops->connect(s, (struct sockaddr_unspec *)raddr, size, flags);
13481348

13491349
return rv < 0 ? rv : 0;
13501350
}

drivers/net/ppp/pppoe.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -608,8 +608,8 @@ static int pppoe_release(struct socket *sock)
608608
return 0;
609609
}
610610

611-
static int pppoe_connect(struct socket *sock, struct sockaddr *uservaddr,
612-
int sockaddr_len, int flags)
611+
static int pppoe_connect(struct socket *sock, struct sockaddr_unspec *uservaddr,
612+
int sockaddr_len, int flags)
613613
{
614614
struct sock *sk = sock->sk;
615615
struct sockaddr_pppox *sp = (struct sockaddr_pppox *)uservaddr;

drivers/net/ppp/pptp.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -415,8 +415,8 @@ static int pptp_bind(struct socket *sock, struct sockaddr_unspec *uservaddr,
415415
return error;
416416
}
417417

418-
static int pptp_connect(struct socket *sock, struct sockaddr *uservaddr,
419-
int sockaddr_len, int flags)
418+
static int pptp_connect(struct socket *sock, struct sockaddr_unspec *uservaddr,
419+
int sockaddr_len, int flags)
420420
{
421421
struct sock *sk = sock->sk;
422422
struct sockaddr_pppox *sp = (struct sockaddr_pppox *) uservaddr;

drivers/net/wireless/ath/ath10k/qmi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -986,7 +986,7 @@ static int ath10k_qmi_new_server(struct qmi_handle *qmi_hdl,
986986

987987
ath10k_dbg(ar, ATH10K_DBG_QMI, "wifi fw qmi service found\n");
988988

989-
ret = kernel_connect(qmi_hdl->sock, (struct sockaddr *)&qmi->sq,
989+
ret = kernel_connect(qmi_hdl->sock, (struct sockaddr_unspec *)&qmi->sq,
990990
sizeof(qmi->sq), 0);
991991
if (ret) {
992992
ath10k_err(ar, "failed to connect to a remote QMI service port\n");

drivers/net/wireless/ath/ath11k/qmi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3177,7 +3177,7 @@ static int ath11k_qmi_ops_new_server(struct qmi_handle *qmi_hdl,
31773177
sq->sq_node = service->node;
31783178
sq->sq_port = service->port;
31793179

3180-
ret = kernel_connect(qmi_hdl->sock, (struct sockaddr *)sq,
3180+
ret = kernel_connect(qmi_hdl->sock, (struct sockaddr_unspec *)sq,
31813181
sizeof(*sq), 0);
31823182
if (ret) {
31833183
ath11k_warn(ab, "failed to connect to qmi remote service: %d\n", ret);

drivers/net/wireless/ath/ath12k/qmi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3740,7 +3740,7 @@ static int ath12k_qmi_ops_new_server(struct qmi_handle *qmi_hdl,
37403740
sq->sq_node = service->node;
37413741
sq->sq_port = service->port;
37423742

3743-
ret = kernel_connect(qmi_hdl->sock, (struct sockaddr *)sq,
3743+
ret = kernel_connect(qmi_hdl->sock, (struct sockaddr_unspec *)sq,
37443744
sizeof(*sq), 0);
37453745
if (ret) {
37463746
ath12k_warn(ab, "qmi failed to connect to remote service %d\n", ret);

drivers/nvme/host/tcp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1872,7 +1872,7 @@ static int nvme_tcp_alloc_queue(struct nvme_ctrl *nctrl, int qid,
18721872
dev_dbg(nctrl->device, "connecting queue %d\n",
18731873
nvme_tcp_queue_id(queue));
18741874

1875-
ret = kernel_connect(queue->sock, (struct sockaddr *)&ctrl->addr,
1875+
ret = kernel_connect(queue->sock, (struct sockaddr_unspec *)&ctrl->addr,
18761876
sizeof(ctrl->addr), 0);
18771877
if (ret) {
18781878
dev_err(nctrl->device,

drivers/slimbus/qcom-ngd-ctrl.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,7 @@ static int qcom_slim_qmi_init(struct qcom_slim_ngd_ctrl *ctrl,
463463
}
464464

465465
rc = kernel_connect(handle->sock,
466-
(struct sockaddr *)&ctrl->qmi.svc_info,
466+
(struct sockaddr_unspec *)&ctrl->qmi.svc_info,
467467
sizeof(ctrl->qmi.svc_info), 0);
468468
if (rc < 0) {
469469
dev_err(ctrl->dev, "Remote Service connect failed: %d\n", rc);

0 commit comments

Comments
 (0)