[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] libxc: Fix buffer length for get_suspend_file
On Tue, 2014-03-18 at 13:58 +0000, Ian Jackson wrote: > 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> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> Although I do wonder if it would be less error prone to push the size up to a parameter to get_suspend_file where it is (presumably) near to the declaration of the array. > CC: Julien Grall <julien.grall@xxxxxxxxxx> > > -- > v2: Actually change the declaration of buf. > --- > tools/libxc/xc_suspend.c | 4 ++-- > 1 file 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) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |