> From: Rob Browning <r...@defaultvalue.org> > Date: Mon, 23 Jan 2012 23:05:26 -0600 > Cc: 655...@bugs.debian.org, 655118-forwar...@bugs.debian.org, > Moritz Mühlenhoff <j...@inutil.org> > > --- emacs23-23.3+1.orig/lib-src/movemail.c 2011-12-29 05:07:27.000000000 > +0100 > +++ emacs23-23.3+1/lib-src/movemail.c 2012-01-08 17:31:22.000000000 +0100 > @@ -615,11 +615,11 @@ > { > fprintf (stderr, "movemail: "); > if (s3) > - fprintf (stderr, s1, s2, s3); > + fprintf (stderr, "%s%s%s", s1, s2, s3); > else if (s2) > - fprintf (stderr, s1, s2); > + fprintf (stderr, "%s%s", s1, s2); > else > - fprintf (stderr, s1); > + fprintf (stderr, "%s", s1); > fprintf (stderr, "\n"); > }
How can this possibly be TRT? The commentary to this function says: /* Print error message. `s1' is printf control string, `s2' and `s3' are args for it or null. */ If S1 is the printf control string, how will printing it with %s DTRT? E.g., in this invocation: error ("Error connecting to POP server: %s", pop_error, 0); or in this one: error ("Error in open: %s, %s", strerror (errno), outfile); I think the right fix for this is to declare `error' with the appropriate printf attribute. Alternatively, you could use variable argument lists and call vprintf instead. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org