Fix potential problems with non-literal printf arguments.
authorJohn Darrington <john@darrington.wattle.id.au>
Sun, 9 Oct 2011 14:42:56 +0000 (16:42 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Sun, 9 Oct 2011 14:42:56 +0000 (16:42 +0200)
In a few places we were passing a constructed string to a printf-like
function as its format argument.  This could have been problematic if
the constructed string had contained a % (for example due to that
character occuring in a variable label).  This change avoids those
situations.

src/data/ods-reader.c
src/language/stats/mcnemar.c

index 9bbfb479e2b9e8d02c1b6642e6ad81193b3a1e3c..ea8b9ad56b62fa279116a21703cfaf529ec747ec 100644 (file)
@@ -127,7 +127,7 @@ ods_file_casereader_destroy (struct casereader *reader UNUSED, void *r_)
     xmlFreeTextReader (r->xtr);
 
   if ( ! ds_is_empty (&r->ods_errs))
-    msg (ME, ds_cstr (&r->ods_errs));
+    msg (ME, "%s", ds_cstr (&r->ods_errs));
 
   ds_destroy (&r->ods_errs);
 
index e26a3c1d0954f9632fb58c913fc2bf00107d74e9..4f64bbb492dba7ad9748b137e16f5266fe36113b 100644 (file)
@@ -184,7 +184,7 @@ output_freq_table (variable_pair *vp,
   ds_put_cstr (&pair_name, " & ");
   ds_put_cstr (&pair_name, var_to_string ((*vp)[1]));
 
-  tab_title (table, ds_cstr (&pair_name));
+  tab_title (table, "%s", ds_cstr (&pair_name));
 
   ds_destroy (&pair_name);