summaryrefslogtreecommitdiffstats
path: root/sys/dev/iscsi
diff options
context:
space:
mode:
authortrasz <trasz@FreeBSD.org>2014-02-11 12:01:11 +0000
committertrasz <trasz@FreeBSD.org>2014-02-11 12:01:11 +0000
commit3e89ba0a6aa0b081596853f06081c29c66790242 (patch)
tree72752a68d5e98dac2e716f07881beaf322b5b5f1 /sys/dev/iscsi
parenta92d8da5ad7b149e8fd60a5161b84b2df861825d (diff)
downloadFreeBSD-src-3e89ba0a6aa0b081596853f06081c29c66790242.zip
FreeBSD-src-3e89ba0a6aa0b081596853f06081c29c66790242.tar.gz
MFC r260389:
Fix a rare "truncated checksums" problem, which manifested like this: WARNING: icl_pdu_check_data_digest: data digest check failed; got 0xf23b, should be 0xdb7f23b Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'sys/dev/iscsi')
-rw-r--r--sys/dev/iscsi/icl.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/iscsi/icl.c b/sys/dev/iscsi/icl.c
index e0e1179..5739028 100644
--- a/sys/dev/iscsi/icl.c
+++ b/sys/dev/iscsi/icl.c
@@ -324,7 +324,7 @@ icl_pdu_check_header_digest(struct icl_pdu *request, size_t *availablep)
}
CTASSERT(sizeof(received_digest) == ISCSI_HEADER_DIGEST_SIZE);
- memcpy(&received_digest, mtod(m, void *), ISCSI_HEADER_DIGEST_SIZE);
+ m_copydata(m, 0, ISCSI_HEADER_DIGEST_SIZE, (void *)&received_digest);
m_freem(m);
*availablep -= ISCSI_HEADER_DIGEST_SIZE;
@@ -482,7 +482,7 @@ icl_pdu_check_data_digest(struct icl_pdu *request, size_t *availablep)
}
CTASSERT(sizeof(received_digest) == ISCSI_DATA_DIGEST_SIZE);
- memcpy(&received_digest, mtod(m, void *), ISCSI_DATA_DIGEST_SIZE);
+ m_copydata(m, 0, ISCSI_DATA_DIGEST_SIZE, (void *)&received_digest);
m_freem(m);
*availablep -= ISCSI_DATA_DIGEST_SIZE;
OpenPOWER on IntegriCloud