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

[xen staging] libxl: Remove unnecessary buffer zeroing and zalloc()



commit ba5755798e9daf85617876276a3aee5e749d5f2a
Author:     Javi Merino <javi.merino@xxxxxxxxx>
AuthorDate: Mon Sep 2 17:38:38 2024 +0100
Commit:     Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
CommitDate: Tue Sep 3 10:53:44 2024 +0100

    libxl: Remove unnecessary buffer zeroing and zalloc()
    
    When reading the console, xen overwrites the contents of the buffer,
    so there is no need to zero the buffer before passing it to xen.
    Instead, add a NULL at the end of the buffer.
    
    While we are at it, change the zalloc() of the buffer back to
    malloc() as it was before bdf4131 (libxl: don't leak buf in
    libxl_xen_console_read_start error handling, 2013-12-03).  The comment
    in that commit message says that the intent of the commit was to
    change malloc+memset to zalloc(), but only for the
    libxl_xen_console_reader struct, not for the buffer.
    
    Signed-off-by: Javi Merino <javi.merino@xxxxxxxxx>
    Reviewed-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
---
 tools/libs/light/libxl_console.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/libs/light/libxl_console.c b/tools/libs/light/libxl_console.c
index 9f736b8913..6c4414fcc1 100644
--- a/tools/libs/light/libxl_console.c
+++ b/tools/libs/light/libxl_console.c
@@ -783,7 +783,7 @@ libxl_xen_console_reader *
     unsigned int size = 16384 + 1;
 
     cr = libxl__zalloc(NOGC, sizeof(libxl_xen_console_reader));
-    cr->buffer = libxl__zalloc(NOGC, size);
+    cr->buffer = libxl__malloc(NOGC, size);
     cr->size = size;
     cr->clear = clear;
     cr->incremental = 1;
@@ -813,7 +813,6 @@ int libxl_xen_console_read_line(libxl_ctx *ctx,
     unsigned int nr_chars = cr->size - 1;
     GC_INIT(ctx);
 
-    memset(cr->buffer, 0, cr->size);
     ret = xc_readconsolering(ctx->xch, cr->buffer, &nr_chars,
                              cr->clear, cr->incremental, &cr->index);
     if (ret < 0) {
@@ -823,6 +822,7 @@ int libxl_xen_console_read_line(libxl_ctx *ctx,
     }
     if (!ret) {
         if (nr_chars) {
+            cr->buffer[nr_chars] = '\0';
             *line_r = cr->buffer;
             ret = 1;
         } else {
--
generated by git-patchbot for /home/xen/git/xen.git#staging



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.