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

[Xen-changelog] [xen master] libxc: Fix buffer length for get_suspend_file



commit fe1a6bc7546d006384157b6b004efdd3b9d283c5
Author:     Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
AuthorDate: Tue Mar 18 13:45:25 2014 +0000
Commit:     Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
CommitDate: Tue Mar 18 13:56:47 2014 +0000

    libxc: Fix buffer length for get_suspend_file
    
    Declaring a formal parameter to have an array type doesn't result in
    the parameter actually having an array type.  The type is "adjusted"
    to a pointer.  (C99 6.9.1(7), 6.7.5.3.)
    
    So the use of sizeof in xc_suspend.c:get_suspend_file was wrong.
    Instead, use the #define.  Also get rid of the array size, as it is
    misleading.
    
    Newer versions of gcc warn about the erroneous code:
      xc_suspend.c:39:25: error: argument to 'sizeof' in 'snprintf' call
        is the same expression as the destination; did you mean to provide
        an explicit length? [-Werror=sizeof-pointer-memaccess]
    
    Reported-By: Julien Grall <julien.grall@xxxxxxxxxx>
    Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
    CC: Ian Campbell <ian.campbell@xxxxxxxxxx>
    CC: Julien Grall <julien.grall@xxxxxxxxxx>
    
    --
    v2: Actually change the declaration of buf.
---
 tools/libxc/xc_suspend.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/libxc/xc_suspend.c b/tools/libxc/xc_suspend.c
index 84ee139..200d381 100644
--- a/tools/libxc/xc_suspend.c
+++ b/tools/libxc/xc_suspend.c
@@ -34,9 +34,9 @@
 
 #define SUSPEND_FILE_BUFLEN (sizeof(SUSPEND_LOCK_FILE) + 10)
 
-static void get_suspend_file(char buf[SUSPEND_FILE_BUFLEN], int domid)
+static void get_suspend_file(char buf[], int domid)
 {
-    snprintf(buf, sizeof(buf), SUSPEND_LOCK_FILE, domid);
+    snprintf(buf, SUSPEND_FILE_BUFLEN, SUSPEND_LOCK_FILE, domid);
 }
 
 static int lock_suspend_event(xc_interface *xch, int domid, int *lockfd)
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

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