From 3197f7bf234b4af432510f89e27f06fac5d9edf0 Mon Sep 17 00:00:00 2001 From: Tom Parker Date: Thu, 30 Aug 2007 20:10:49 +0200 Subject: [PATCH] Convert debug to using g_vasprintf for long debug pk_{debug,warning,error} used g_vsnprintf with a fixed 1024 byte buffer. Admittedly, using pk_debug with things exceeding that is a bit silly, but still. This patch converts the debug functions to using g_vasprintf, which means we can throw away the fixed buffer entirely and get >1024 character messages. --- libpackagekit/pk-debug.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/libpackagekit/pk-debug.c b/libpackagekit/pk-debug.c index c2b272581..25098a9b7 100644 --- a/libpackagekit/pk-debug.c +++ b/libpackagekit/pk-debug.c @@ -21,6 +21,7 @@ #include #include +#include #include #include #include @@ -31,7 +32,6 @@ #include "pk-debug.h" static gboolean do_verbose = FALSE; /* if we should print out debugging */ -static gchar va_args_buffer [1025]; /** * pk_print_line: @@ -64,16 +64,19 @@ pk_debug_real (const gchar *func, const gchar *format, ...) { va_list args; + gchar *buffer = NULL; if (do_verbose == FALSE) { return; } va_start (args, format); - g_vsnprintf (va_args_buffer, 1024, format, args); + g_vasprintf (&buffer, format, args); va_end (args); - pk_print_line (func, file, line, va_args_buffer); + pk_print_line (func, file, line, buffer); + + g_free(buffer); } /** @@ -86,18 +89,21 @@ pk_warning_real (const gchar *func, const gchar *format, ...) { va_list args; + gchar *buffer = NULL; if (do_verbose == FALSE) { return; } va_start (args, format); - g_vsnprintf (va_args_buffer, 1024, format, args); + g_vasprintf (&buffer, format, args); va_end (args); /* do extra stuff for a warning */ fprintf (stderr, "*** WARNING ***\n"); - pk_print_line (func, file, line, va_args_buffer); + pk_print_line (func, file, line, buffer); + + g_free(buffer); } /** @@ -110,14 +116,16 @@ pk_error_real (const gchar *func, const gchar *format, ...) { va_list args; + gchar *buffer = NULL; va_start (args, format); - g_vsnprintf (va_args_buffer, 1024, format, args); + g_vasprintf (&buffer, format, args); va_end (args); /* do extra stuff for a warning */ fprintf (stderr, "*** ERROR ***\n"); - pk_print_line (func, file, line, va_args_buffer); + pk_print_line (func, file, line, buffer); + g_free(buffer); exit (0); }