[libvirt] [PATCH 7/8] logging: always NUL-terminate circular buffer
Laine Stump
laine at laine.org
Sun Mar 27 08:51:46 UTC 2011
On 03/26/2011 08:12 AM, Eric Blake wrote:
> * src/util/logging.c (virLogStartup, virLogSetBufferSize):
> Over-allocate, so that a debugger can just print the circular
> buffer. Suggested by Daniel Veillard.
> ---
>
> Original post:
> https://www.redhat.com/archives/libvir-list/2011-March/msg01107.html
>
> src/util/logging.c | 8 ++++----
> 1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/src/util/logging.c b/src/util/logging.c
> index f4910ad..48c0cfd 100644
> --- a/src/util/logging.c
> +++ b/src/util/logging.c
> @@ -197,14 +197,14 @@ int virLogStartup(void) {
>
> virLogInitialized = 1;
> virLogLock();
> - if (VIR_ALLOC_N(virLogBuffer, virLogSize)< 0) {
> + if (VIR_ALLOC_N(virLogBuffer, virLogSize + 1)< 0) {
> /*
> * The debug buffer is not a critical component, allow startup
> * even in case of failure to allocate it in case of a
> * configuration mistake.
> */
> virLogSize = 64 * 1024;
> - if (VIR_ALLOC_N(virLogBuffer, virLogSize)< 0) {
> + if (VIR_ALLOC_N(virLogBuffer, virLogSize + 1)< 0) {
> pbm = "Failed to allocate debug buffer: deactivating debug log\n";
> virLogSize = 0;
> } else {
> @@ -249,14 +249,14 @@ virLogSetBufferSize(int size) {
> oldsize = virLogSize;
> oldLogBuffer = virLogBuffer;
>
> - if (INT_MAX / 1024< size) {
> + if (INT_MAX / 1024<= size) {
> pbm = "Requested log size of %d kB too large\n";
> ret = -1;
> goto error;
> }
>
> virLogSize = size * 1024;
> - if (VIR_ALLOC_N(virLogBuffer, virLogSize)< 0) {
> + if (VIR_ALLOC_N(virLogBuffer, virLogSize + 1)< 0) {
> pbm = "Failed to allocate debug buffer of %d kB\n";
> virLogBuffer = oldLogBuffer;
> virLogSize = oldsize;
ACK
More information about the libvir-list
mailing list