From 2d0b8560cee8a43297915883eda39749274654d0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A1n=20Tomko?=
If there is a need for complex string concatenations, avoid using
the usual sequence of malloc/strcpy/strcat/snprintf functions and
- make use of the virBuffer API described in virbuffer.h
+ make use of either the
+ GString
+ type from GLib or the virBuffer API.
+ If formatting XML or QEMU command line is needed, use the virBuffer
+ API described in virbuffer.h, since it has helper functions for those.
Typical usage is as follows:
- When printing to a string, consider using virBuffer for - incremental allocations, virAsprintf for a one-shot allocation, - and snprintf for fixed-width buffers. Do not use sprintf, even - if you can prove the buffer won't overflow, since gnulib does - not provide the same portability guarantees for sprintf as it - does for snprintf. + When printing to a string, consider using GString or virBuffer for + incremental allocations, g_strdup_printf for a one-shot allocation, + and g_snprintf for fixed-width buffers. Only use g_sprintf, + if you can prove the buffer won't overflow.