~ubuntu-branches/ubuntu/precise/xorg-server/precise

« back to all changes in this revision

Viewing changes to test/xi2/protocol-xiselectevents.c

  • Committer: Bazaar Package Importer
  • Author(s): Christopher James Halse Rogers
  • Date: 2011-01-31 19:45:19 UTC
  • mfrom: (1.1.38 upstream) (0.1.19 experimental)
  • Revision ID: james.westby@ubuntu.com-20110131194519-fx30d1zsg83invba
Tags: 2:1.9.99.901+git20110131.be3be758-0ubuntu1
* Merge from (unreleased) debian-experimental.  Remaining Ubuntu changes:
  - rules:
    + Disable SELinux, libaudit-dev is not in main yet. (LP: #406226)
    + Enable xcsecurity. (LP: #247537)
    + Add --with-extra-module-dir to support GL alternatives.
  - control: 
    + Xvfb depends on xauth, x11-xkb-utils. (LP: #500102)
    + Add breaks for incompatible drivers. (LP: #614993)
    + Drop libaudit-dev from build-deps.
  - local/xvfb-run*: Add correct docs about error codes. (LP #328205)
  - debian/patches:
    + 100_rethrow_signals.patch:
      When aborting, re-raise signals for apport
    + 109_fix-swcursor-crash.patch:
      Avoid dereferencing null pointer while reloading cursors during
      resume. (LP: #371405)
    + 111_armel-drv-fallbacks.patch:
      Add support for armel driver fallbacks.
    + 121_only_switch_vt_when_active.diff:
      Add a check to prevent the X server from changing the VT when killing
      GDM from the console.
    + 122_xext_fix_card32_overflow_in_xauth.patch:
      Fix server crash when “xauth generate” is called with large timeout.
    + 157_check_null_modes.patch, 162_null_crtc_in_rotation.patch,
      166_nullptr_xinerama_keyrepeat.patch, 167_nullptr_xisbread.patch
      169_mipointer_nullptr_checks.patch,
      172_cwgetbackingpicture_nullptr_check.patch:
      Fix various segfaults in xserver by checking pointers for NULL
      values before dereferencing them.
    + 165_man_xorg_conf_no_device_ident.patch
      Correct man page
    + 168_glibc_trace_to_stderr.patch:
      Report abort traces to stderr instead of terminal
    + 184_virtual_devices_autodetect.patch:
      Use vesa for qemu device, which is not supported by cirrus
    + 188_default_primary_to_first_busid.patch:
      Pick the first device and carry on (LP: #459512)
    + 190_cache-xkbcomp_output_for_fast_start_up.patch:
    + 191-Xorg-add-an-extra-module-path.patch:
      Add support for the alternatives module path.
    + 198_nohwaccess.patch:
      Adds a -nohwaccess argument to make X not access the hardware
      ports directly.
    + 200_randr-null.patch:
      Clarify a pointer initialization.
    + 206_intel_8xx_default_to_fbdev.patch:
      Makes 8xx class intel GPUs default to fbdev for stability. (LP: #633593)
* Refresh 121_only_switch_vt_when_active.diff for new upstream.
* Drop 187_edid_quirk_hp_nc8430.patch; upstream.
* Drop 189_xserver_1.5.0_bg_none_root.patch; functionality now upstream.
* Refresh 190_cache-xkbcomp_output_for_fast_start_up.patch for new upstream.
* Drop 197_xvfb-randr.patch:
  - miRandR, which this used, has been removed from the server. 
* Drop 204_fix-neg-sync-transition.patch; upstream.
* Drop 207_dga_master_device.patch; upstream.
* Drop 208_switch_on_release.diff; upstream.
* debian/patches/209_add_legacy_bgnone_option.patch:
  - Add "-nr" as a synonym for "-background none" to ease the transition from
    the old 189_xserver_1.5.0_bg_none_root.patch patch.  Can be dropped once
    all the ?DM have been updated to use the new option.
* debian/control:
  - Add Breaks: to xserver-xorg-video-8 and current fglrx.  These proprietary
    drivers don't yet have appropriate dependency information, so manually
    handle them here to prevent broken upgrades.

Show diffs side-by-side

added added

removed removed

Lines of Context:
131
131
{
132
132
    int i, j;
133
133
    xXIEventMask *mask;
134
 
    int nmasks = (XI_LASTEVENT + 7)/8;
 
134
    int nmasks = (XI2LASTEVENT + 7)/8;
135
135
    unsigned char *bits;
136
136
 
137
137
    mask = (xXIEventMask*)&req[1];
150
150
        request_XISelectEvent(req, Success);
151
151
 
152
152
        /* Test 1:
153
 
         * mask may be larger than needed for XI_LASTEVENT.
 
153
         * mask may be larger than needed for XI2LASTEVENT.
154
154
         * Test setting each valid mask bit, while leaving unneeded bits 0.
155
155
         * -> Success
156
156
         */
157
157
        bits = (unsigned char*)&mask[1];
158
158
        mask->mask_len = (nmasks + 3)/4 * 10;
159
159
        memset(bits, 0, mask->mask_len * 4);
160
 
        for (j = 0; j <= XI_LASTEVENT; j++)
 
160
        for (j = 0; j <= XI2LASTEVENT; j++)
161
161
        {
162
162
            SetBit(bits, j);
163
163
            request_XISelectEvent(req, Success);
165
165
        }
166
166
 
167
167
        /* Test 2:
168
 
         * mask may be larger than needed for XI_LASTEVENT.
 
168
         * mask may be larger than needed for XI2LASTEVENT.
169
169
         * Test setting all valid mask bits, while leaving unneeded bits 0.
170
170
         * -> Success
171
171
         */
173
173
        mask->mask_len = (nmasks + 3)/4 * 10;
174
174
        memset(bits, 0, mask->mask_len * 4);
175
175
 
176
 
        for (j = 0; j <= XI_LASTEVENT; j++)
 
176
        for (j = 0; j <= XI2LASTEVENT; j++)
177
177
        {
178
178
            SetBit(bits, j);
179
179
            request_XISelectEvent(req, Success);
180
180
        }
181
181
 
182
182
        /* Test 3:
183
 
         * mask is larger than needed for XI_LASTEVENT. If any unneeded bit
 
183
         * mask is larger than needed for XI2LASTEVENT. If any unneeded bit
184
184
         * is set -> BadValue
185
185
         */
186
186
        bits = (unsigned char*)&mask[1];
187
187
        mask->mask_len = (nmasks + 3)/4 * 10;
188
188
        memset(bits, 0, mask->mask_len * 4);
189
189
 
190
 
        for (j = XI_LASTEVENT + 1; j < mask->mask_len * 4; j++)
 
190
        for (j = XI2LASTEVENT + 1; j < mask->mask_len * 4; j++)
191
191
        {
192
192
            SetBit(bits, j);
193
193
            request_XISelectEvent(req, BadValue);
200
200
        bits = (unsigned char*)&mask[1];
201
201
        mask->mask_len = (nmasks + 3)/4;
202
202
        memset(bits, 0, mask->mask_len * 4);
203
 
        for (j = 0; j <= XI_LASTEVENT; j++)
 
203
        for (j = 0; j <= XI2LASTEVENT; j++)
204
204
        {
205
205
            SetBit(bits, j);
206
206
            request_XISelectEvent(req, Success);
228
228
        bits = (unsigned char*)&mask[1];
229
229
        mask->mask_len = (nmasks + 3)/4;
230
230
        memset(bits, 0, mask->mask_len * 4);
231
 
        for (j = 0; j <= XI_LASTEVENT; j++)
 
231
        for (j = 0; j <= XI2LASTEVENT; j++)
232
232
            SetBit(bits, j);
233
233
        ClearBit(bits, XI_HierarchyChanged);
234
234
        for (j = 1; j < 6; j++)