[libvirt-perl][PATCH 1/7] Fix send_all() callback helper

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sys::Virt::virStream->send_all() uses virStreamSendAll() under
the hood. This function takes one callback to fill the send
buffer with stream data. We have a C glue callback that
eventually calls the perl one. However, there's a problem with
the glue callback mangling the data as it mistakenly uses
strcpy() instead of memcpy().

Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx>
---
 Changes | 1 +
 Virt.xs | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/Changes b/Changes
index 2e5bfe4..2e4a99e 100644
--- a/Changes
+++ b/Changes
@@ -3,6 +3,7 @@ Revision history for perl module Sys::Virt
 3.4.0 2017-06-00
 
  - Add LIST_CAP_MDEV & LIST_CAP_MDEV_TYPES constants
+ - Fix send_all() callback helper
 
 3.3.0 2017-05-08
 
diff --git a/Virt.xs b/Virt.xs
index 9ccdc1f..a041c95 100644
--- a/Virt.xs
+++ b/Virt.xs
@@ -1948,7 +1948,7 @@ _stream_send_all_source(virStreamPtr st,
         const char *newdata = SvPV_nolen(datasv);
         if (ret > nbytes)
             ret = nbytes;
-        strncpy(data, newdata, nbytes);
+        memcpy(data, newdata, nbytes);
     }
 
     FREETMPS;
-- 
2.13.0

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]
  Powered by Linux