diff -p -u -r ../libXxf86misc-X11R7.1-1.0.1.orig/src/XF86Misc.c ./src/XF86Misc.c --- ../libXxf86misc-X11R7.1-1.0.1.orig/src/XF86Misc.c 2007-03-01 21:31:06.431364114 +0100 +++ ./src/XF86Misc.c 2007-03-01 21:39:06.546988660 +0100 @@ -154,6 +154,8 @@ Bool XF86MiscGetMouseSettings(dpy, mouse if (!(mouseinfo->device = Xcalloc(rep.devnamelen + 1, 1))) { _XEatData(dpy, (rep.devnamelen+3) & ~3); Xfree(mouseinfo->device); + UnlockDisplay(dpy); + SyncHandle(); return False; } _XReadPad(dpy, mouseinfo->device, rep.devnamelen); @@ -308,6 +310,8 @@ Bool XF86MiscGetFilePaths(dpy, filpaths) if (!(filpaths->configfile = Xcalloc(rep.configlen + 1, 1))) { _XEatData(dpy, ((rep.configlen+3) & ~3) + ((rep.modulelen+3) & ~3) + ((rep.loglen+3) & ~3)); + UnlockDisplay(dpy); + SyncHandle(); return False; } } @@ -318,6 +322,8 @@ Bool XF86MiscGetFilePaths(dpy, filpaths) + ((rep.loglen+3) & ~3)); if (filpaths->configfile) Xfree(filpaths->configfile); + UnlockDisplay(dpy); + SyncHandle(); return False; } } @@ -330,6 +336,8 @@ Bool XF86MiscGetFilePaths(dpy, filpaths) Xfree(filpaths->configfile); if (filpaths->modulepath) Xfree(filpaths->modulepath); + UnlockDisplay(dpy); + SyncHandle(); return False; } } @@ -394,6 +402,8 @@ Status XF86MiscPassMessage(dpy, screen, if (rep.mesglen) { if (!(*retmsg = Xcalloc(rep.mesglen + 1, 1))) { _XEatData(dpy, ((rep.mesglen+3) & ~3)); + UnlockDisplay(dpy); + SyncHandle(); return BadAlloc; } _XReadPad(dpy, *retmsg, rep.mesglen);