Xlib/XCB: passing the error in xreply to the extension who sent the request.
[platform/upstream/libX11.git] / NEWS
1 Version 1.1.2 - 2007-06-03
2
3 * Security fixes:
4   * Fix CVE-2007-1667: Multiple integer overflows in the XGetPixel() and
5     XInitImage() functions.
6   * Bug #9279: Fixed a file descriptor leak.
7
8 * Xlib/XCB: Ensure _XReadEvents reads at least one new event and blocks for
9   exactly one event.  Large performance improvement for XIfEvent and similar.
10
11 * Hold XCB's Xlib lock even when only the user lock (XLockDisplay) is held.
12   An Xlib client can query Display state, such as with NextRequest, while it
13   holds only the Xlib user lock (between XLockDisplay and XUnlockDisplay), so
14   XCB requests in other threads should be blocked when the Xlib user lock is
15   held.  We acquire the lock even when XInitThreads was not called, so that
16   pure XCB code can use multiple threads even in an otherwise single-threaded
17   Xlib application.
18
19 * Allow re-entrant Xlib calls from _XIOError.
20   Some libraries try to clean up X resources from atexit handlers, _fini, or
21   C++ destructors. To make these work, downgrade the Display lock to a user
22   lock (as in XLockDisplay) before calling exit(3).  This blocks Xlib calls
23   from threads other than the one calling exit(3) while still allowing the
24   exit handlers to call Xlib.
25
26 * Xlib/XCB: Avoid re-crashing after _XIOError.
27
28 * Xlib/XCB: Only remove pending_requests when there are provably no more responses.
29
30 * For NetBSD, define XTHREADLIB and XTHREAD_CFLAGS.
31
32 * Bug #7703: Fixed XSetSizeHints() et al wrt use of uninitialized data.
33   Now only those fields of the respective hint struct are set that
34   are actually valid in the input data.
35
36 * Bug #10292: Fixed a memory leak related to XOpenDisplay() in the XCB code.
37
38 * Bug #7713: Initialize all of the event's fields before sending it.
39
40 * Bug #10562: Define _GNU_SOURCE on glibc systems.
41
42 * Use unistd.h to get getresuid() and friends, now that we have _GNU_SOURCE
43   defined.
44
45 * Switched function definitions from K&R to ANSI style.
46
47 * Many constness fixes.
48
49 * Fixed a few warnings.
50
51 * Fix 64bit issues with reallocation.
52
53 * Manpage fixes:
54   * Add man pages for XKB APIs.
55     (Volunteer needed to convert prototypes in man pages to ANSI C style...)
56   * Protect C comments and #defines in XKB man pages from being mangled by cpp
57   * Fix typo in nroff macro in XkbAddGeomOverlayKey.man
58   * Bug #9695: Fixed a few argument types in the XOpenIM manpage.
59   * Markup tweak for XOpenIM.
60   * Bug #9696: refer to XDefineCursor() instead of XDefineCusor().
61   * Bug #9697: Fixed documentation of XVisualInfo struct.  The "depth" member
62     was said to be unsigned int, but it's signed.
63
64 * nls fixes:
65   * Update el_GR.UTF-8/Compose.pre to match changes in xkeyboard-config cvs.
66   * For nls/*.pre, allow people to comment lines by starting them with '##'.
67
68 * Build system fixes:
69   * Add autogen.sh to EXTRA_DIST.
70   * Makefile.am: make ChangeLog hook safer
71   * Don't distribute the configure-generated XlibConf.h in tarballs.
72
73 Version 1.1.1 - 2006-11-30
74
75 The "xcompmgr is hard, let's go releasing" release
76
77 * Fix Bug #9154 and friends, to unbreak xcompmgr:
78   Always process an event for _XReadEvents, even if an error occurs.
79   Previously, process_responses (in the wait_for_first_event case called
80   from _XReadEvents) considered any return from xcb_wait_for_event
81   sufficient to think it had processed an event. If xcb_wait_for_event
82   returned an error, and no more events occurred before process_responses
83   called xcb_poll_for_event, process_responses would try to return with
84   dpy->head NULL, and would fail an assertion for the _XReadEvents
85   postcondition. Now, process_responses continues using xcb_wait_for_event
86   until it gets an event.
87
88 * Bug #9153: Fix access to freed memory.
89   The fix for bug #8622 introduced a smaller bug where _XReply would
90   read memory shortly after freeing it. This patch caches the needed
91   value in a stack-allocated variable before the heap-allocated memory
92   is freed.
93
94 * libx11 doesn't use inputproto in public headers; don't require it in x11.pc.
95   Based on a Debian patch.
96
97 * Debian bug #354315: Clarify return value in XGetWindowAttributes man page.
98   Patch by Debian user Ross Combs.
99
100
101 Version 1.1 - 2006-11-23
102
103 * Add note in man-page that XListFontsWithInfo is not thread-safe.  _XReply
104   drops the Display lock, so the value of dpy->request may change before
105   _XReply is called again.  Jamey Sharp discovered this by inspection a few
106   years ago.
107
108 * Fix Bug #8622, by fixing the response processing order for threaded apps.
109   process_responses (the common code for _XReply, _XReadEvents, and
110   _XEventsQueued) now handles responses in order, by adding condition variables
111   to the list of outstanding requests in dpy->xcb->pending_requests, and
112   blocking on them when those requests should get processed, to allow _XReply
113   to process them; if actually called from _XReply, it returns when _XReply's
114   request should get processed.  _XReply broadcasts on its condition variable
115   after it has read its reply and re-acquired the display lock.
116
117 * Don't hold the display lock around callbacks to the application. This avoids
118   recursive locking of the display lock (which triggers an XCB locking
119   assertion), particularly with emacs.
120
121 * Add xcb-xlib dependency to x11.pc when built against XCB.
122
123 * Allocate the right amount of memory for dpy->lock_fns.  Fixes a crash on
124   startup with gdk.
125
126
127 Version 1.1 RC2 - 2006-11-02
128
129 Benno Schulenberg:
130       nls: remove duplicate compose entries (bug #2286)
131       nls: remove shadowed compose entries (bug #2286)
132       nls (en_US): remove long compositions that override shorter (bug #2286)
133
134 Caolan McNamara:
135       XKB geometry: fix leaks in GetKeyboardByName (bug #8099)
136
137 David Nusinow:
138       Dynamically generate internal manpage section using __libmanpagesuffix__ so that it actually matches the section if you don't use 3X11
139
140 Jamey Sharp:
141       Add correct Display locking to XKB functions.
142       XKB bugfix: SyncHandle must be called after UnlockDisplay, not before.
143       XCB: check for and handle I/O errors in _XGetXCBBuffer.
144
145 Matthias Hopf:
146       Fix double open of compose file.
147
148
149 Version 1.1 RC1 - 2006-10-06
150
151 This release includes the Xlib/XCB work, which uses XCB as the Xlib transport
152 layer, and allows a client to use both Xlib and XCB on the same connection.
153 This allows clients to transition from Xlib to XCB incrementally.
154
155 Clients which link only to libX11, and do not use XCB, should not notice any
156 differences in this release.  Clients desiring XCB interoperability should
157 additionally #include <X11/Xlib-xcb.h>, link to libX11-xcb, use
158 XGetXCBConnection(dpy) to obtain the underlying XCB connection, and then use
159 XCB functions directly on that connection.
160
161 Note that while a client can issue requests and handle their replies or errors
162 with either Xlib or XCB, only one can own and handle the event queue.  By
163 default, Xlib must own the event queue, for compatibility with legacy Xlib
164 clients.  Clients can use the function XSetEventQueueOwner immediately after
165 XOpenDisplay to let XCB own the event queue instead.  Clients may not call
166 this function after processing any responses, as this will potentially lose
167 responses.
168
169 We expect to have an RC2 release corresponding to the Xorg RC2 schedule, which
170 should include additional internal architecture enhancements, but no
171 user-visible changes.  1.0 final should match RC2.
172
173 Other smaller changes in this release:
174 * correct ChangeLog generation
175 * support running lint and sparse
176 * Autoconf 2.60
177 * fix man page for XUrgencyHint
178 * improve man pages for XGrabButton, XGrabKey, XGetWindowProperty
179 * new locales: as_IN.UTF-8, kn_IN.UTF-8, ml_IN.UTF-8, or_IN.UTF-8,
180   te_IN.UTF-8, ur_IN.UTF-8
181 * on systems with both UNIXCONN and LOCALCONN, try unix if local fails
182 * fix sparse warnings
183 * ansify static functions
184
185 -- Josh Triplett <josh@freedesktop.org>, Jamey Sharp <jamey@minilop.net>