libvhost-user: Fix assignment in vring_set_avail_event
authorMarcel Holtmann <marcel@holtmann.org>
Thu, 22 Dec 2022 20:36:49 +0000 (21:36 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 11 Jan 2023 09:44:35 +0000 (10:44 +0100)
Since it was proposed to change the code in libvduse.c to use memcpy
instead of an assignment, the code in libvhost-user.c should also be
changed to use memcpy.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <502b22723264db064e4b05008233a9c1f2f8aaaa.1671741278.git.marcel@holtmann.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
subprojects/libvhost-user/libvhost-user.c

index b28b66cdb15948890188d0396a231177b2cad137..fc69783d2bf6741c24d451b518594b58934a0c2e 100644 (file)
@@ -2478,14 +2478,13 @@ vring_used_flags_unset_bit(VuVirtq *vq, int mask)
 static inline void
 vring_set_avail_event(VuVirtq *vq, uint16_t val)
 {
-    uint16_t *avail;
+    uint16_t val_le = htole16(val);
 
     if (!vq->notification) {
         return;
     }
 
-    avail = (uint16_t *)&vq->vring.used->ring[vq->vring.num];
-    *avail = htole16(val);
+    memcpy(&vq->vring.used->ring[vq->vring.num], &val_le, sizeof(uint16_t));
 }
 
 void