chart: Fix format string issues in chart_write_title callers.
authorBen Pfaff <blp@gnu.org>
Thu, 2 Jul 2009 03:50:33 +0000 (20:50 -0700)
committerBen Pfaff <blp@gnu.org>
Thu, 2 Jul 2009 14:52:30 +0000 (07:52 -0700)
The 'title' argument to chart_write_title is used as a printf-type format
string, so callers must pass "%s" to safely use an arbitrary string as a
title.

src/language/stats/examine.q
src/output/charts/barchart.c
src/output/charts/piechart.c
src/output/charts/plot-chart.h

index febb60fedeeb5d5146253c5b3c434bece64ff79e..4254d4fbb5ec9fbe8ac3ce3900ddc19c1e6911a5 100644 (file)
@@ -1800,7 +1800,7 @@ box_plot_variables (const struct factor *fctr,
       ds_init_empty (&str);
       factor_to_string (fctr, *fs, 0, &str );
 
-      chart_write_title (ch, ds_cstr (&str));
+      chart_write_title (ch, "%s", ds_cstr (&str));
 
       for ( i = 0 ; i < n_vars ; ++i )
        {
index 88a1d741ddf9199f08404d49096de62dada0a373..96cd07fb055aa004ca694dc142bfb4ba59dc9ad5 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -202,7 +202,7 @@ draw_barchart(struct chart *ch, const char *title,
   pl_restorestate_r(ch->lp);
 
 
-  chart_write_title(ch, title);
+  chart_write_title(ch, "%s", title);
 
   write_legend(ch);
 
index 4eeb10ca63af06f70f764477cd0865401c34a8c0..aa52f99e9d1560e7a1e95552dff4deb28f4e6e71 100644 (file)
@@ -74,7 +74,7 @@ piechart_plot(const char *title, const struct slice *slices, int n_slices)
                            );
 
 
-  chart_write_title(ch, title);
+  chart_write_title(ch, "%s", title);
 
   for (i = 0 ; i < n_slices ; ++i )
     total_magnetude += slices[i].magnetude;
index 4a1dc10538d2567b630cca096886c8ca8e5011cd..f29b4a35d1d74280325bedf0d10941cfbdcdfff1 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -26,6 +26,7 @@
 #include <math/chart-geometry.h>
 #include <output/chart.h>
 
+#include <libpspp/compiler.h>
 #include <libpspp/str.h>
 #include <output/manager.h>
 #include <output/output.h>
@@ -55,7 +56,8 @@ void draw_tick(struct chart *chart,
 
 
 /* Write the title on a chart*/
-void   chart_write_title(struct chart *chart, const char *title, ...);
+void   chart_write_title(struct chart *chart, const char *title, ...)
+  PRINTF_FORMAT (2, 3);
 
 
 /* Set the scale for the abscissa */