[geany/geany] 717f8e: Windows: fix possible buffer overflows
Colomban Wendling
git-noreply at xxxxx
Thu Mar 6 14:01:38 UTC 2014
Branch: refs/heads/master
Author: Colomban Wendling <ban at herbesfolles.org>
Committer: Colomban Wendling <ban at herbesfolles.org>
Date: Thu, 06 Mar 2014 14:01:38 UTC
Commit: 717f8e1b137f7a51a78ffbf12d1c0c15b1784bc3
https://github.com/geany/geany/commit/717f8e1b137f7a51a78ffbf12d1c0c15b1784bc3
Log Message:
-----------
Windows: fix possible buffer overflows
Fix improper use of MultiByteToWideChar() that could have led to
buffer overflows.
Modified Paths:
--------------
src/win32.c
Modified: src/win32.c
32 files changed, 16 insertions(+), 16 deletions(-)
===================================================================
@@ -123,7 +123,7 @@ static wchar_t *get_file_filters(void)
len = strlen(string);
g_strdelimit(string, "\t", '\0');
g_assert(string[len - 1] == 0x0);
- MultiByteToWideChar(CP_UTF8, 0, string, len, title, sizeof(title));
+ MultiByteToWideChar(CP_UTF8, 0, string, len, title, G_N_ELEMENTS(title));
g_free(string);
return title;
@@ -142,7 +142,7 @@ static wchar_t *get_file_filter_all_files(void)
len = strlen(filter);
g_strdelimit(filter, "\t", '\0');
g_assert(filter[len - 1] == 0x0);
- MultiByteToWideChar(CP_UTF8, 0, filter, len, title, sizeof(title));
+ MultiByteToWideChar(CP_UTF8, 0, filter, len, title, G_N_ELEMENTS(title));
g_free(filter);
return title;
@@ -170,7 +170,7 @@ static wchar_t *get_filters(gboolean project_files)
len = strlen(string);
g_strdelimit(string, "\t", '\0');
g_assert(string[len - 1] == 0x0);
- MultiByteToWideChar(CP_UTF8, 0, string, len, title, sizeof(title));
+ MultiByteToWideChar(CP_UTF8, 0, string, len, title, G_N_ELEMENTS(title));
g_free(string);
return title;
@@ -189,7 +189,7 @@ static wchar_t *get_dir_for_path(const gchar *utf8_filename)
else
result = g_path_get_dirname(utf8_filename);
- MultiByteToWideChar(CP_UTF8, 0, result, -1, w_dir, sizeof(w_dir));
+ MultiByteToWideChar(CP_UTF8, 0, result, -1, w_dir, G_N_ELEMENTS(w_dir));
if (result != utf8_filename)
g_free(result);
@@ -237,7 +237,7 @@ gchar *win32_show_folder_dialog(GtkWidget *parent, const gchar *title, const gch
wchar_t fname[MAX_PATH];
wchar_t w_title[512];
- MultiByteToWideChar(CP_UTF8, 0, title, -1, w_title, sizeof(w_title));
+ MultiByteToWideChar(CP_UTF8, 0, title, -1, w_title, G_N_ELEMENTS(w_title));
if (parent == NULL)
parent = main_widgets.window;
@@ -284,7 +284,7 @@ gchar *win32_show_project_open_dialog(GtkWidget *parent, const gchar *title,
fname[0] = '\0';
- MultiByteToWideChar(CP_UTF8, 0, title, -1, w_title, sizeof(w_title));
+ MultiByteToWideChar(CP_UTF8, 0, title, -1, w_title, G_N_ELEMENTS(w_title));
if (parent == NULL)
parent = main_widgets.window;
@@ -347,9 +347,9 @@ gboolean win32_show_document_open_dialog(GtkWindow *parent, const gchar *title,
fname[0] = '\0';
if (initial_dir != NULL)
- MultiByteToWideChar(CP_UTF8, 0, initial_dir, -1, w_dir, sizeof(w_dir));
+ MultiByteToWideChar(CP_UTF8, 0, initial_dir, -1, w_dir, G_N_ELEMENTS(w_dir));
- MultiByteToWideChar(CP_UTF8, 0, title, -1, w_title, sizeof(w_title));
+ MultiByteToWideChar(CP_UTF8, 0, title, -1, w_title, G_N_ELEMENTS(w_title));
/* initialise file dialog info struct */
memset(&of, 0, sizeof of);
@@ -430,9 +430,9 @@ gchar *win32_show_document_save_as_dialog(GtkWindow *parent, const gchar *title,
w_file[0] = '\0';
if (initial_file != NULL)
- MultiByteToWideChar(CP_UTF8, 0, initial_file, -1, w_file, sizeof(w_file));
+ MultiByteToWideChar(CP_UTF8, 0, initial_file, -1, w_file, G_N_ELEMENTS(w_file));
- MultiByteToWideChar(CP_UTF8, 0, title, -1, w_title, sizeof(w_title));
+ MultiByteToWideChar(CP_UTF8, 0, title, -1, w_title, G_N_ELEMENTS(w_title));
/* initialise file dialog info struct */
memset(&of, 0, sizeof of);
@@ -486,9 +486,9 @@ gchar *win32_show_file_dialog(GtkWindow *parent, const gchar *title, const gchar
w_file[0] = '\0';
if (initial_file != NULL)
- MultiByteToWideChar(CP_UTF8, 0, initial_file, -1, w_file, sizeof(w_file));
+ MultiByteToWideChar(CP_UTF8, 0, initial_file, -1, w_file, G_N_ELEMENTS(w_file));
- MultiByteToWideChar(CP_UTF8, 0, title, -1, w_title, sizeof(w_title));
+ MultiByteToWideChar(CP_UTF8, 0, title, -1, w_title, G_N_ELEMENTS(w_title));
/* initialise file dialog info struct */
memset(&of, 0, sizeof of);
@@ -599,7 +599,7 @@ void win32_show_pref_file_dialog(GtkEntry *item)
filename = g_find_program_in_path(field[0]);
if (filename != NULL && g_file_test(filename, G_FILE_TEST_EXISTS))
{
- MultiByteToWideChar(CP_UTF8, 0, filename, -1, fname, sizeof(fname));
+ MultiByteToWideChar(CP_UTF8, 0, filename, -1, fname, G_N_ELEMENTS(fname));
g_free(filename);
}
}
@@ -722,7 +722,7 @@ gboolean win32_message_dialog(GtkWidget *parent, GtkMessageType type, const gcha
gint win32_check_write_permission(const gchar *dir)
{
static wchar_t w_dir[MAX_PATH];
- MultiByteToWideChar(CP_UTF8, 0, dir, -1, w_dir, sizeof w_dir);
+ MultiByteToWideChar(CP_UTF8, 0, dir, -1, w_dir, G_N_ELEMENTS(w_dir));
if (_waccess(w_dir, R_OK | W_OK) != 0)
return errno;
else
@@ -1170,8 +1170,8 @@ static gboolean CreateChildProcess(geany_win32_spawn *gw_spawn, TCHAR *szCmdline
/* Expand environment variables like %blah%. */
expandedCmdline = win32_expand_environment_variables(szCmdline);
- MultiByteToWideChar(CP_UTF8, 0, expandedCmdline, -1, w_commandline, sizeof(w_commandline));
- MultiByteToWideChar(CP_UTF8, 0, dir, -1, w_dir, sizeof(w_dir));
+ MultiByteToWideChar(CP_UTF8, 0, expandedCmdline, -1, w_commandline, G_N_ELEMENTS(w_commandline));
+ MultiByteToWideChar(CP_UTF8, 0, dir, -1, w_dir, G_N_ELEMENTS(w_dir));
/* Create the child process. */
bFuncRetn = CreateProcessW(NULL,
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Commits
mailing list