[Libvir] XML escaping patch

Daniel P. Berrange berrange at redhat.com
Fri Jul 6 14:13:46 UTC 2007


On Fri, Jul 06, 2007 at 03:05:09PM +0100, Richard W.M. Jones wrote:
> Daniel Veillard wrote:
> [...]
> > /**
> >+ * virBufferEscapeString:
> >+ * @buf:  the buffer to dump
> >+ * @format: a printf like format string but with only one %s parameter
> >+ * @str:  the string argument which need to be escaped
> >+ *
> >+ * Do a formatted print with a single string to an XML buffer. The string
> >+ * is escaped to avoid generating a not well-formed XML instance.
> >+ *
> >+ * Returns 0 successful, -1 in case of internal or API error.
> >+ */
> >+int
> >+virBufferEscapeString(virBufferPtr buf, const char *format, const char 
> >*str)
> 
> I spent a bit of time pondering if it would be possible to either make 
> this call type-safe, or else handle arbitrary format strings.  I'm not 
> sure I can see a good way to do either, so in the meantime, +1.

If we want safety then we should be using an API based on structural
notion of XML elements & attributes, rather than printf. In our use
cases any single attribute / element is either a boolean, int or a
string, so if we had APIs based on idea of creating elements / adding
attributes the whole thing could be typesafe & have no need of any
printf formatting.

Dan.
-- 
|=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
|=-           Perl modules: http://search.cpan.org/~danberr/              -=|
|=-               Projects: http://freshmeat.net/~danielpb/               -=|
|=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 




More information about the libvir-list mailing list