From a54a766dfb39fb3df671045878ac706215d83cef Mon Sep 17 00:00:00 2001 From: Mikhail Gusarov Date: Mon, 7 Jun 2010 03:19:03 +0700 Subject: [PATCH] xkb: replace xstrdup with strdup in Win32System The only caller of Win32System is XkbDDXCompileKeymapByNames. Add allocation check there to avoid passing NULL pointers to various functions down the code. Signed-off-by: Mikhail Gusarov Reviewed-by: Peter Hutterer --- xkb/ddxLoad.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c index b1d629436..5e6ab8770 100644 --- a/xkb/ddxLoad.c +++ b/xkb/ddxLoad.c @@ -103,7 +103,7 @@ Win32System(const char *cmdline) STARTUPINFO si; PROCESS_INFORMATION pi; DWORD dwExitCode; - char *cmd = xstrdup(cmdline); + char *cmd = strdup(cmdline); ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); @@ -235,6 +235,11 @@ XkbDDXCompileKeymapByNames( XkbDescPtr xkb, xkm_output_dir, keymap); free(xkbbasedirflag); + + if (!buf) { + LogMessage(X_ERROR, "XKB: Could not invoke xkbcomp: not enough memory\n"); + return FALSE; + } #ifndef WIN32 out= Popen(buf,"w");