aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/ctld/pdu.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/ctld/pdu.c')
-rw-r--r--usr.sbin/ctld/pdu.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/usr.sbin/ctld/pdu.c b/usr.sbin/ctld/pdu.c
index be3598e2b5a7..77b9526d4200 100644
--- a/usr.sbin/ctld/pdu.c
+++ b/usr.sbin/ctld/pdu.c
@@ -81,11 +81,11 @@ pdu_new(struct connection *conn)
{
struct pdu *pdu;
- pdu = calloc(sizeof(*pdu), 1);
+ pdu = calloc(1, sizeof(*pdu));
if (pdu == NULL)
log_err(1, "calloc");
- pdu->pdu_bhs = calloc(sizeof(*pdu->pdu_bhs), 1);
+ pdu->pdu_bhs = calloc(1, sizeof(*pdu->pdu_bhs));
if (pdu->pdu_bhs == NULL)
log_err(1, "calloc");
@@ -117,7 +117,7 @@ pdu_receive_proxy(struct pdu *pdu)
log_errx(1, "protocol error: non-empty AHS");
len = pdu_data_segment_length(pdu);
- assert(len <= MAX_DATA_SEGMENT_LENGTH);
+ assert(len <= pdu->pdu_connection->conn_max_recv_data_segment_length);
pdu->pdu_data_len = len;
}
@@ -164,6 +164,7 @@ pdu_read(int fd, char *data, size_t len)
void
pdu_receive(struct pdu *pdu)
{
+ struct connection *conn;
size_t len, padding;
char dummy[4];
@@ -173,9 +174,10 @@ pdu_receive(struct pdu *pdu)
#endif
assert(proxy_mode == false);
+ conn = pdu->pdu_connection;
- pdu_read(pdu->pdu_connection->conn_socket,
- (char *)pdu->pdu_bhs, sizeof(*pdu->pdu_bhs));
+ pdu_read(conn->conn_socket, (char *)pdu->pdu_bhs,
+ sizeof(*pdu->pdu_bhs));
len = pdu_ahs_length(pdu);
if (len > 0)
@@ -183,10 +185,10 @@ pdu_receive(struct pdu *pdu)
len = pdu_data_segment_length(pdu);
if (len > 0) {
- if (len > MAX_DATA_SEGMENT_LENGTH) {
+ if ((int)len > conn->conn_max_recv_data_segment_length) {
log_errx(1, "protocol error: received PDU "
"with DataSegmentLength exceeding %d",
- MAX_DATA_SEGMENT_LENGTH);
+ conn->conn_max_recv_data_segment_length);
}
pdu->pdu_data_len = len;
@@ -194,14 +196,13 @@ pdu_receive(struct pdu *pdu)
if (pdu->pdu_data == NULL)
log_err(1, "malloc");
- pdu_read(pdu->pdu_connection->conn_socket,
- (char *)pdu->pdu_data, pdu->pdu_data_len);
+ pdu_read(conn->conn_socket, (char *)pdu->pdu_data,
+ pdu->pdu_data_len);
padding = pdu_padding(pdu);
if (padding != 0) {
assert(padding < sizeof(dummy));
- pdu_read(pdu->pdu_connection->conn_socket,
- (char *)dummy, padding);
+ pdu_read(conn->conn_socket, (char *)dummy, padding);
}
}
}