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 <[email protected]> --- 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 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
