[PATCHv2] xkb: replace xstrdup with strdup in Win32System
Mikhail Gusarov
dottedmag at dottedmag.net
Sun Jun 6 13:24:32 PDT 2010
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 <dottedmag at dottedmag.net>
---
In new version of patch NULL return value of Xprintf is explicitly guarded and
dealt with.
xkb/ddxLoad.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c
index b1d6294..f7bd667 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");
--
1.7.1
More information about the xorg-devel
mailing list