SF.net SVN: geany:[4855] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Sun Apr 25 17:42:01 UTC 2010
Revision: 4855
http://geany.svn.sourceforge.net/geany/?rev=4855&view=rev
Author: eht16
Date: 2010-04-25 17:42:01 +0000 (Sun, 25 Apr 2010)
Log Message:
-----------
Replace g_vsnprintf() by g_strdup_vprintf() to avoid truncated strings in case of reaching the buffer size limit (part of #2979697).
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/dialogs.c
trunk/src/msgwindow.c
trunk/src/ui_utils.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2010-04-22 17:16:46 UTC (rev 4854)
+++ trunk/ChangeLog 2010-04-25 17:42:01 UTC (rev 4855)
@@ -1,3 +1,10 @@
+2010-04-25 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+
+ * src/build.c, src/dialogs.c, src/msgwindow.c, src/ui_utils.c:
+ Replace g_vsnprintf() by g_strdup_vprintf() to avoid truncated
+ strings in case of reaching the buffer size limit (part of #2979697).
+
+
2010-04-22 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* src/plugindata.h, src/pluginutils.c, src/pluginutils.h, THANKS:
Modified: trunk/src/dialogs.c
===================================================================
--- trunk/src/dialogs.c 2010-04-22 17:16:46 UTC (rev 4854)
+++ trunk/src/dialogs.c 2010-04-25 17:42:01 UTC (rev 4855)
@@ -607,12 +607,12 @@
#ifndef G_OS_WIN32
GtkWidget *dialog;
#endif
- gchar string[512];
+ gchar *string;
va_list args;
GtkWindow *parent = (main_status.main_window_realized) ? GTK_WINDOW(main_widgets.window) : NULL;
va_start(args, text);
- g_vsnprintf(string, 511, text, args);
+ string = g_strdup_vprintf(text, args);
va_end(args);
#ifdef G_OS_WIN32
@@ -622,6 +622,7 @@
type, GTK_BUTTONS_OK, "%s", string);
show_msgbox_dialog(dialog, type, parent);
#endif
+ g_free(string);
}
@@ -1465,18 +1466,21 @@
**/
gboolean dialogs_show_question(const gchar *text, ...)
{
- gchar string[512];
+ gchar *string;
va_list args;
GtkWidget *parent = (main_status.main_window_realized) ? main_widgets.window : NULL;
+ gint result;
va_start(args, text);
- g_vsnprintf(string, 511, text, args);
+ string = g_strdup_vprintf(text, args);
va_end(args);
- return show_prompt(parent,
+ result = show_prompt(parent,
NULL, GTK_RESPONSE_NONE,
GTK_STOCK_NO, GTK_RESPONSE_NO,
GTK_STOCK_YES, GTK_RESPONSE_YES,
- string, NULL) == GTK_RESPONSE_YES;
+ string, NULL);
+ g_free(string);
+ return (result == GTK_RESPONSE_YES);
}
@@ -1486,17 +1490,20 @@
gboolean dialogs_show_question_full(GtkWidget *parent, const gchar *yes_btn, const gchar *no_btn,
const gchar *extra_text, const gchar *main_text, ...)
{
- gchar string[512];
+ gint result;
+ gchar *string;
va_list args;
va_start(args, main_text);
- g_vsnprintf(string, 511, main_text, args);
+ string = g_strdup_vprintf(main_text, args);
va_end(args);
- return show_prompt(parent,
+ result = show_prompt(parent,
NULL, GTK_RESPONSE_NONE,
no_btn, GTK_RESPONSE_NO,
yes_btn, GTK_RESPONSE_YES,
- string, extra_text) == GTK_RESPONSE_YES;
+ string, extra_text);
+ g_free(string);
+ return (result == GTK_RESPONSE_YES);
}
@@ -1510,14 +1517,17 @@
const gchar *btn_3, GtkResponseType response_3,
const gchar *extra_text, const gchar *main_text, ...)
{
- gchar string[512];
+ gchar *string;
va_list args;
+ gint result;
va_start(args, main_text);
- g_vsnprintf(string, 511, main_text, args);
+ string = g_strdup_vprintf(main_text, args);
va_end(args);
- return show_prompt(parent, btn_1, response_1, btn_2, response_2, btn_3, response_3,
+ result = show_prompt(parent, btn_1, response_1, btn_2, response_2, btn_3, response_3,
string, extra_text);
+ g_free(string);
+ return result;
}
Modified: trunk/src/msgwindow.c
===================================================================
--- trunk/src/msgwindow.c 2010-04-22 17:16:46 UTC (rev 4854)
+++ trunk/src/msgwindow.c 2010-04-25 17:42:01 UTC (rev 4855)
@@ -252,13 +252,14 @@
**/
void msgwin_compiler_add(gint msg_color, const gchar *format, ...)
{
- gchar string[512];
+ gchar *string;
va_list args;
va_start(args, format);
- g_vsnprintf(string, 512, format, args);
+ string = g_strdup_vprintf(format, args);
va_end(args);
msgwin_compiler_add_string(msg_color, string);
+ g_free(string);
}
@@ -314,14 +315,15 @@
**/
void msgwin_msg_add(gint msg_color, gint line, GeanyDocument *doc, const gchar *format, ...)
{
- gchar string[512];
+ gchar *string;
va_list args;
va_start(args, format);
- g_vsnprintf(string, 512, format, args);
+ string = g_strdup_vprintf(format, args);
va_end(args);
msgwin_msg_add_string(msg_color, line, doc, string);
+ g_free(string);
}
@@ -361,18 +363,19 @@
void msgwin_status_add(const gchar *format, ...)
{
GtkTreeIter iter;
- gchar string[512];
+ gchar *string;
gchar *statusmsg, *time_str;
va_list args;
va_start(args, format);
- g_vsnprintf(string, 512, format, args);
+ string = g_strdup_vprintf(format, args);
va_end(args);
/* add a timestamp to status messages */
time_str = utils_get_current_time_string();
statusmsg = g_strconcat(time_str, ": ", string, NULL);
g_free(time_str);
+ g_free(string);
/* add message to Status window */
gtk_list_store_append(msgwindow.store_status, &iter);
Modified: trunk/src/ui_utils.c
===================================================================
--- trunk/src/ui_utils.c 2010-04-22 17:16:46 UTC (rev 4854)
+++ trunk/src/ui_utils.c 2010-04-25 17:42:01 UTC (rev 4855)
@@ -140,11 +140,11 @@
* @param format A @c printf -style string. */
void ui_set_statusbar(gboolean log, const gchar *format, ...)
{
- gchar string[512];
+ gchar *string;
va_list args;
va_start(args, format);
- g_vsnprintf(string, 512, format, args);
+ string = g_strdup_vprintf(format, args);
va_end(args);
if (! prefs.suppress_status_messages)
@@ -152,6 +152,8 @@
if (log || prefs.suppress_status_messages)
msgwin_status_add("%s", string);
+
+ g_free(string);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list