Menu

#241 gerbv 2.7.0 fails to build with -Werror=format-security

v1.0 (example)
open
nobody
None
5
2019-02-18
2019-02-16
No

Unfortunately the recent gerbv version 2.7.0 fails to build with additional CFLAGS -Werror=format-security

gcc -DLOCALEDIR=\"/usr/share/locale\" -DHAVE_CONFIG_H -I. -I..   -Wdate-time -D_FORTIFY_SOURCE=2 -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -DPREFIXDIR=\"/usr\" -DBINDIR=\"/usr/bin\" -DBACKEND_DIR='"/usr/share/gerbv/scheme/"' -DSCMSUBDIR='"scheme"' -g -O2 -fdebug-prefix-map=/build/gerbv-2.7.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wall  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -c -o scheme.o scheme.c
interface.c: In function 'rename_main_window':
interface.c:78:3: error: format not a string literal and no format arguments [-Werror=format-security]
   g_string_printf(win_title, _(gerbv_win_title));
   ^~~~~~~~~~~~~~~
interface.c: In function 'interface_create_gui':
interface.c:340:2: warning: 'gdk_pixbuf_new_from_inline' is deprecated [-Wdeprecated-declarations]
  pointerpixbuf = gdk_pixbuf_new_from_inline(-1, pointer, FALSE, NULL);
  ^~~~~~~~~~~~~
In file included from /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h:34,
                 from /usr/include/gtk-2.0/gdk/gdkpixbuf.h:37,
                 from /usr/include/gtk-2.0/gdk/gdkcairo.h:28,
                 from /usr/include/gtk-2.0/gdk/gdk.h:33,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from gerbv.h:77,
                 from interface.c:29:
/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h:362:12: note: declared here
 GdkPixbuf* gdk_pixbuf_new_from_inline (gint          data_length,
            ^~~~~~~~~~~~~~~~~~~~~~~~~~
interface.c:341:2: warning: 'gdk_pixbuf_new_from_inline' is deprecated [-Wdeprecated-declarations]
  movepixbuf = gdk_pixbuf_new_from_inline(-1, move, FALSE, NULL);
  ^~~~~~~~~~
In file included from /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h:34,
                 from /usr/include/gtk-2.0/gdk/gdkpixbuf.h:37,
                 from /usr/include/gtk-2.0/gdk/gdkcairo.h:28,
                 from /usr/include/gtk-2.0/gdk/gdk.h:33,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from gerbv.h:77,
                 from interface.c:29:
/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h:362:12: note: declared here
 GdkPixbuf* gdk_pixbuf_new_from_inline (gint          data_length,
            ^~~~~~~~~~~~~~~~~~~~~~~~~~
interface.c:342:2: warning: 'gdk_pixbuf_new_from_inline' is deprecated [-Wdeprecated-declarations]
  zoompixbuf = gdk_pixbuf_new_from_inline(-1, lzoom, FALSE, NULL);
  ^~~~~~~~~~
In file included from /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h:34,
                 from /usr/include/gtk-2.0/gdk/gdkpixbuf.h:37,
                 from /usr/include/gtk-2.0/gdk/gdkcairo.h:28,
                 from /usr/include/gtk-2.0/gdk/gdk.h:33,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from gerbv.h:77,
                 from interface.c:29:
/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h:362:12: note: declared here
 GdkPixbuf* gdk_pixbuf_new_from_inline (gint          data_length,
            ^~~~~~~~~~~~~~~~~~~~~~~~~~
interface.c:343:2: warning: 'gdk_pixbuf_new_from_inline' is deprecated [-Wdeprecated-declarations]
  measurepixbuf = gdk_pixbuf_new_from_inline(-1, ruler, FALSE, NULL);
  ^~~~~~~~~~~~~
In file included from /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h:34,
                 from /usr/include/gtk-2.0/gdk/gdkpixbuf.h:37,
                 from /usr/include/gtk-2.0/gdk/gdkcairo.h:28,
                 from /usr/include/gtk-2.0/gdk/gdk.h:33,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from gerbv.h:77,
                 from interface.c:29:
/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h:362:12: note: declared here
 GdkPixbuf* gdk_pixbuf_new_from_inline (gint          data_length,
            ^~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[4]: *** [Makefile:732: interface.o] Error 1
make[4]: *** Waiting for unfinished jobs....
callbacks.c: In function 'callbacks_about_activate':
callbacks.c:1878:12: warning: macro "__DATE__" might prevent reproducible builds [-Wdate-time]
   VERSION, __DATE__, __TIME__);
            ^~~~~~~~
callbacks.c:1878:22: warning: macro "__TIME__" might prevent reproducible builds [-Wdate-time]
   VERSION, __DATE__, __TIME__);
                      ^~~~~~~~
make[4]: Leaving directory '/build/gerbv-2.7.0/src'
make[3]: *** [Makefile:557: all] Error 2
make[3]: Leaving directory '/build/gerbv-2.7.0/src'
make[2]: *** [Makefile:512: all-recursive] Error 1
make[2]: Leaving directory '/build/gerbv-2.7.0'
make[1]: *** [Makefile:442: all] Error 2
make[1]: Leaving directory '/build/gerbv-2.7.0'

... if I try to fix this by adding a "%s", a bit later also here.

libtool: compile:  gcc -DLOCALEDIR=\"/usr/share/locale\" -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -DPREFIXDIR=\"/usr\" -DBINDIR=\"/usr/bin\" -DBACKEND_DIR=\"/usr/share/gerbv/scheme/\" -DSCMSUBDIR=\"scheme\" -g -O2 -fdebug-prefix-map=/build/gerbv-2.7.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -c drill_stats.c  -fPIC -DPIC -o .libs/drill_stats.o
drill_stats.c: In function 'gerbv_drill_stats_add_layer':
drill_stats.c:181:7: error: format not a string literal and no format arguments [-Werror=format-security]
       this_layer, error->error_text);
       ^~~~~~~~~~
drill_stats.c:213:8: error: format not a string literal and no format arguments [-Werror=format-security]
        this_layer, error->error_text);
        ^~~~~~~~~~
cc1: some warnings being treated as errors
make[4]: *** [Makefile:746: drill_stats.lo] Error 1
make[4]: Leaving directory '/build/gerbv-2.7.0/src'
make[3]: *** [Makefile:557: all] Error 2
make[3]: Leaving directory '/build/gerbv-2.7.0/src'
make[2]: *** [Makefile:512: all-recursive] Error 1
make[2]: Leaving directory '/build/gerbv-2.7.0'
make[1]: *** [Makefile:442: all] Error 2
make[1]: Leaving directory '/build/gerbv-2.7.0'

This prevents an updating of gerbv in Debian for the upcomming Buster release.

Discussion

  • Sergey Alyoshin

    Sergey Alyoshin - 2019-02-18

    Does this patch fix the problem?

     
  • Carsten Schoenert

    Yes it does! Thank you!

     

Log in to post a comment.