All of lore.kernel.org
 help / color / mirror / Atom feed
* Compile error with Ubuntu 11.10
@ 2011-11-30 21:19 Adda Rathbone
  2011-12-01 10:47 ` Ian Campbell
  0 siblings, 1 reply; 5+ messages in thread
From: Adda Rathbone @ 2011-11-30 21:19 UTC (permalink / raw)
  To: xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 674 bytes --]

Hi,
compilation of xen-unstable with a fresh Ubuntu 11.10 x86_64 fails with
following error:

cc1: warnings being treated as errors
libxl_create.c: In function ‘store_libxl_entry’:
libxl_create.c:465: error: format not a string literal and no format
arguments

Steps to reproduce:

- Install Ubuntu 11.10 (
http://www.ubuntu.com/start-download?distro=desktop&bits=64&release=latest)
- sudo apt-get install mercurial libsdl-dev pciutils-dev ncurses-dev
uuid-dev gettext libyajl-dev flex zlib1g-dev libssl-dev xorg-dev bcc bin86
iasl libc6-dev-i386 patch git
- hg clone http://xenbits.xensource.com/xen-unstable.hg
- cd xen-unstable.hg/tools
- make

Adda

[-- Attachment #1.2: Type: text/html, Size: 910 bytes --]

[-- Attachment #2: Type: text/plain, Size: 138 bytes --]

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Compile error with Ubuntu 11.10
  2011-11-30 21:19 Compile error with Ubuntu 11.10 Adda Rathbone
@ 2011-12-01 10:47 ` Ian Campbell
  2011-12-01 17:14   ` Ian Jackson
  0 siblings, 1 reply; 5+ messages in thread
From: Ian Campbell @ 2011-12-01 10:47 UTC (permalink / raw)
  To: Adda Rathbone; +Cc: xen-devel@lists.xensource.com

On Wed, 2011-11-30 at 21:19 +0000, Adda Rathbone wrote:
> Hi,
> compilation of xen-unstable with a fresh Ubuntu 11.10 x86_64 fails
> with following error:
> 
> cc1: warnings being treated as errors
> libxl_create.c: In function ‘store_libxl_entry’:
> libxl_create.c:465: error: format not a string literal and no format 
> arguments

Looks like Ubuntu has enabled -Wformat-nonliteral by default

I expect that this needs to change to be
    return libxl__xs_write(gc, XBT_NULL, path, "%s", libxl__strdup(gc,
       libxl_device_model_version_to_string(dm_info->device_model_version)));
(note the additional "%s",)

Can you try that?

The other alternative would be to add -Wnoformat-nonliteral I guess.

It's also not obvious what the strdup is for there.

Ian.


> 
> Steps to reproduce:
> 
> - Install Ubuntu 11.10
> (http://www.ubuntu.com/start-download?distro=desktop&bits=64&release=latest)
> - sudo apt-get install mercurial libsdl-dev pciutils-dev ncurses-dev
> uuid-dev gettext libyajl-dev flex zlib1g-dev libssl-dev xorg-dev bcc
> bin86 iasl libc6-dev-i386 patch git
> - hg clone http://xenbits.xensource.com/xen-unstable.hg
> - cd xen-unstable.hg/tools
> - make
> 
> Adda



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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Compile error with Ubuntu 11.10
  2011-12-01 10:47 ` Ian Campbell
@ 2011-12-01 17:14   ` Ian Jackson
  2011-12-01 18:01     ` Ian Campbell
  0 siblings, 1 reply; 5+ messages in thread
From: Ian Jackson @ 2011-12-01 17:14 UTC (permalink / raw)
  To: Ian Campbell; +Cc: xen-devel@lists.xensource.com, Adda Rathbone

Ian Campbell writes ("Re: [Xen-devel] Compile error with Ubuntu 11.10"):
> I expect that this needs to change to be
>     return libxl__xs_write(gc, XBT_NULL, path, "%s", libxl__strdup(gc,
>        libxl_device_model_version_to_string(dm_info->device_model_version)));
> (note the additional "%s",)
> 
> Can you try that?

Here's a patch which I think should fix this.  Adda, can you try it
please ?

libxl: Fix format string problem resulting in compile warning

Fixes:
  libxl_create.c:465: error: format not a string literal and no format 
  arguments
(The warning does not relate to security problem in this case,
because the string erroneously used as a format came from our enum
conversion and is safe.)

Also remove a redundant strdup.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>

diff -r 617b56ea3291 tools/libxl/libxl_create.c
--- a/tools/libxl/libxl_create.c	Thu Dec 01 16:28:51 2011 +0000
+++ b/tools/libxl/libxl_create.c	Thu Dec 01 16:52:30 2011 +0000
@@ -461,8 +461,8 @@ static int store_libxl_entry(libxl__gc *
 
     path = libxl__xs_libxl_path(gc, domid);
     path = libxl__sprintf(gc, "%s/dm-version", path);
-    return libxl__xs_write(gc, XBT_NULL, path, libxl__strdup(gc,
-        libxl_device_model_version_to_string(dm_info->device_model_version)));
+    return libxl__xs_write(gc, XBT_NULL, path, "%s",
+        libxl_device_model_version_to_string(dm_info->device_model_version));
 }
 
 static int do_domain_create(libxl__gc *gc, libxl_domain_config *d_config,

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Compile error with Ubuntu 11.10
  2011-12-01 17:14   ` Ian Jackson
@ 2011-12-01 18:01     ` Ian Campbell
  2011-12-02 18:01       ` Andrew Pounce
  0 siblings, 1 reply; 5+ messages in thread
From: Ian Campbell @ 2011-12-01 18:01 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel@lists.xensource.com, Adda Rathbone

On Thu, 2011-12-01 at 17:14 +0000, Ian Jackson wrote:
> Ian Campbell writes ("Re: [Xen-devel] Compile error with Ubuntu 11.10"):
> > I expect that this needs to change to be
> >     return libxl__xs_write(gc, XBT_NULL, path, "%s", libxl__strdup(gc,
> >        libxl_device_model_version_to_string(dm_info->device_model_version)));
> > (note the additional "%s",)
> > 
> > Can you try that?
> 
> Here's a patch which I think should fix this.  Adda, can you try it
> please ?
> 
> libxl: Fix format string problem resulting in compile warning
> 
> Fixes:
>   libxl_create.c:465: error: format not a string literal and no format 
>   arguments
> (The warning does not relate to security problem in this case,
> because the string erroneously used as a format came from our enum
> conversion and is safe.)

If distros (or gcc) are starting to enable -Wformat-nonliteral (assuming
that is what this is) by default perhaps we should preemptively set it
ourselves?

Setting it found one other instance of a weird strdup (actually a
sprintf of a string we just sprintf'd). but otherwise it seems to work.

8<-------------------------------

libxl: build with -Wformat-nonliteral

Fix the remaining issue that this shows up.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>

diff -r 20c1c0ff9677 tools/libxl/Makefile
--- a/tools/libxl/Makefile	Thu Dec 01 12:24:06 2011 +0100
+++ b/tools/libxl/Makefile	Thu Dec 01 17:59:25 2011 +0000
@@ -11,7 +11,7 @@ MINOR = 0
 XLUMAJOR = 1.0
 XLUMINOR = 0
 
-CFLAGS += -Werror -Wno-format-zero-length -Wmissing-declarations
+CFLAGS += -Werror -Wno-format-zero-length -Wmissing-declarations -Wformat-nonliteral
 CFLAGS += -I. -fPIC
 
 ifeq ($(CONFIG_Linux),y)

 static int do_domain_create(libxl__gc *gc, libxl_domain_config *d_config,
diff -r 20c1c0ff9677 tools/libxl/libxl_device.c
--- a/tools/libxl/libxl_device.c	Thu Dec 01 12:24:06 2011 +0100
+++ b/tools/libxl/libxl_device.c	Thu Dec 01 17:59:25 2011 +0000
@@ -516,7 +516,7 @@ int libxl__devices_destroy(libxl__gc *gc
         for (j = 0; j < num_devs; j++) {
             path = libxl__sprintf(gc, "/local/domain/%d/device/%s/%s/backend",
                                   domid, kinds[i], devs[j]);
-            path = libxl__xs_read(gc, XBT_NULL, libxl__sprintf(gc, path));
+            path = libxl__xs_read(gc, XBT_NULL, path);
             if (path && libxl__parse_backend_path(gc, path, &dev) == 0) {
                 dev.domid = domid;
                 dev.kind = kind;

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Compile error with Ubuntu 11.10
  2011-12-01 18:01     ` Ian Campbell
@ 2011-12-02 18:01       ` Andrew Pounce
  0 siblings, 0 replies; 5+ messages in thread
From: Andrew Pounce @ 2011-12-02 18:01 UTC (permalink / raw)
  To: Ian Campbell; +Cc: xen-devel@lists.xensource.com, Ian Jackson

IanC - I have tried the two patches that you provided and this appears to fix this problem in that I can now compile on my ubuntu 11.10 desktop.


libxl: Fix format string problem resulting in compile warning 
libxl: build with -Wformat-nonliteral 


 -Andrew


The combined patch is (against http://xenbits.xen.org/xen-unstable.hg ):-

diff -r 62ff6a318c5d tools/libxl/Makefile
--- a/tools/libxl/Makefile      Wed Nov 30 16:59:58 2011 -0800
+++ b/tools/libxl/Makefile      Fri Dec 02 17:49:57 2011 +0000
@@ -11,7 +11,7 @@
 XLUMAJOR = 1.0
 XLUMINOR = 0
 
-CFLAGS += -Werror -Wno-format-zero-length -Wmissing-declarations
+CFLAGS += -Werror -Wno-format-zero-length -Wmissing-declarations -Wformat-nonliteral
 CFLAGS += -I. -fPIC
 
 ifeq ($(CONFIG_Linux),y)
diff -r 62ff6a318c5d tools/libxl/libxl_create.c
--- a/tools/libxl/libxl_create.c        Wed Nov 30 16:59:58 2011 -0800
+++ b/tools/libxl/libxl_create.c        Fri Dec 02 17:49:57 2011 +0000
@@ -461,8 +461,8 @@
 
     path = libxl__xs_libxl_path(gc, domid);
     path = libxl__sprintf(gc, "%s/dm-version", path);
-    return libxl__xs_write(gc, XBT_NULL, path, libxl__strdup(gc,
-        libxl_device_model_version_to_string(dm_info->device_model_version)));
+    return libxl__xs_write(gc, XBT_NULL, path, "%s",
+        libxl_device_model_version_to_string(dm_info->device_model_version));
 }
 
 static int do_domain_create(libxl__gc *gc, libxl_domain_config *d_config,
diff -r 62ff6a318c5d tools/libxl/libxl_device.c
--- a/tools/libxl/libxl_device.c        Wed Nov 30 16:59:58 2011 -0800
+++ b/tools/libxl/libxl_device.c        Fri Dec 02 17:49:57 2011 +0000
@@ -516,7 +516,7 @@
         for (j = 0; j < num_devs; j++) {
             path = libxl__sprintf(gc, "/local/domain/%d/device/%s/%s/backend",
                                   domid, kinds[i], devs[j]);
-            path = libxl__xs_read(gc, XBT_NULL, libxl__sprintf(gc, path));
+            path = libxl__xs_read(gc, XBT_NULL, path);
             if (path && libxl__parse_backend_path(gc, path, &dev) == 0) {
                 dev.domid = domid;
                 dev.kind = kind;

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-12-02 18:01 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-30 21:19 Compile error with Ubuntu 11.10 Adda Rathbone
2011-12-01 10:47 ` Ian Campbell
2011-12-01 17:14   ` Ian Jackson
2011-12-01 18:01     ` Ian Campbell
2011-12-02 18:01       ` Andrew Pounce

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.