* Fixed condition based on uninitialized value in ecore_x_selection
(both xlib and xcb).
* Fixed a leaked when no selection converter matches.
+
+2013-05-21 Daniel Willmann
+
+ * Backport (6d54f46) from Raster:
+ Ecore-X: Fix selection parser to not use longs - wrong on
+ 64bit as the rest of ecore-x keeps types to their REAL sizes (ints),
+ but xlib uses longs (change size - eg 64bit even though protocol-wise
+ the data is DEFINEd as 32bit)
- ecore_x_randr to actually return crtcs possible outputs properly.
- ecore_x_randr to actually return crtcs outputs properly.
* send ECORE_X_EVENT_SELECTION_NOTIFY even if there is no data.
+ * Ecore-X: Fix selection parser to not overrun buffer read by using longs on 64bit.
Improvements:
int format __UNUSED__)
{
Ecore_X_Selection_Data_Targets *sel;
- unsigned long *targets;
+ int *targets;
int i = 0;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
CHECK_XCB_CONN;
- if (!(targets = (unsigned long *)data)) return NULL;
+ if (!(targets = data)) return NULL;
sel = calloc(1, sizeof(Ecore_X_Selection_Data_Targets));
if (!sel) return NULL;
int format __UNUSED__)
{
Ecore_X_Selection_Data_Targets *sel;
- unsigned long *targets;
+ int *targets;
int i;
sel = calloc(1, sizeof(Ecore_X_Selection_Data_Targets));
if (!sel) return NULL;
- targets = (unsigned long *)data;
+ targets = data;
sel->num_targets = size - 2;
sel->targets = malloc((size - 2) * sizeof(char *));