~ubuntu-branches/ubuntu/maverick/xorg-server/maverick-security

« back to all changes in this revision

Viewing changes to hw/dmx/glxProxy/glxscreens.c

  • Committer: Bazaar Package Importer
  • Author(s): Christopher James Halse Rogers
  • Date: 2010-08-05 11:25:14 UTC
  • mfrom: (1.1.35 upstream) (0.1.14 experimental)
  • Revision ID: james.westby@ubuntu.com-20100805112514-q4efdgj3nblevos2
Tags: 2:1.8.99.905-1ubuntu1
* Merge from (unreleased) Debian experimental.  Remaining Ubuntu changes:
  - rules, control:
    + Disable SELinux, libaudit-dev is not in main yet (LP 406226).
      Drop libaudit-dev from build-deps.
  - rules: Enable xcsecurity (LP 247537).
  - local/xvfb-run*: Add correct docs about error codes (LP 328205)
  - rules: Add --with-extra-module-dir to support GL alternatives.
  - control: Xvfb depends on xauth, x11-xkb-utils. (LP 500102)
  - rules, local/64-xorg-xkb.rules: Don't use keyboard-configuration
    until it's available.
  - control: Update some versioned Breaks for Ubuntu versions.
  - 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
    + 187_edid_quirk_hp_nc8430.patch:
      Quirk for another LPL monitor (LP 380009)
    + 188_default_primary_to_first_busid.patch:
      Pick the first device and carry on (LP 459512)
    + 189_xserver_1.5.0_bg_none_root.patch:
      Create a root window with no background.
    + 190_cache-xkbcomp_output_for_fast_start_up.patch:
      Cache keyboard settings.
    + 191-Xorg-add-an-extra-module-path.patch:
      Add support for the alternatives module path.
    + 197_xvfb-randr.patch:
      Adds xrandr support to xvfb. (LP 516123)
    + 198_nohwaccess.patch:
      Adds a -nohwaccess argument to make X not access the hardware
      ports directly.
    + 200_randr-null.patch:
      Clarify a pointer initialization.
* Update changelog entries for 1.8.1.902-1 which became 1.8.99.904-1
* Drop 196_xvfbscreeninit-handling.patch: it's semantically empty, and now 
  doesn't apply.  Merge remaining #include change into 197_xvfb-randr.patch
* New upstream version will start correctly when no outputs are connected,
  as long as the video driver can dynamically resize the framebuffer
  (true for all KMS drivers) (LP: #337889)
* New upstream version fixes crash on non-admin logout with KDE (LP: #569879)
* Refresh 111_armel-drv-fallbacks.patch to fix the build on armel

Show diffs side-by-side

added added

removed removed

Lines of Context:
135
135
   /*
136
136
    * read extensions strings of all back-end servers
137
137
    */
138
 
   be_extensions = (char **)Xalloc( __glXNumActiveScreens * sizeof(char *) );
 
138
   be_extensions = (char **)malloc( __glXNumActiveScreens * sizeof(char *) );
139
139
   if (!be_extensions)
140
140
      return;
141
141
 
158
158
      length = (int)reply.length;
159
159
      numbytes = (int)reply.n;
160
160
      slop = numbytes * __GLX_SIZE_INT8 & 3;
161
 
      be_extensions[s] = (char *)Xalloc(numbytes);
 
161
      be_extensions[s] = (char *)malloc(numbytes);
162
162
      if (!be_extensions[s]) {
163
163
         /* Throw data on the floor */
164
164
         _XEatData(dpy, length);
204
204
    * release temporary storage
205
205
    */
206
206
   for (s=0; s<__glXNumActiveScreens; s++) {
207
 
      if (be_extensions[s]) Xfree(be_extensions[s]); 
 
207
      free(be_extensions[s]);
208
208
   }
209
 
   Xfree( be_extensions );
 
209
   free( be_extensions );
210
210
 
211
211
   if (dmxGLXSwapGroupSupport) {
212
212
       if (!denied_extensions ||
244
244
      // find the set of FBConfigs that are present on all back-end
245
245
      // servers - only those configs will be supported
246
246
       */
247
 
      __glXFBConfigs = (__GLXFBConfig **)Xalloc( dmxScreen0->numFBConfigs * 
 
247
      __glXFBConfigs = (__GLXFBConfig **)malloc( dmxScreen0->numFBConfigs *
248
248
                              (numscreens+1) * sizeof(__GLXFBConfig *) );
249
249
      __glXNumFBConfigs = 0;
250
250
   
254
254
         if (numscreens > 1) {
255
255
            for (s=1; s<numscreens; s++) {
256
256
               DMXScreenInfo *dmxScreen = &dmxScreens[s];
257
 
               __GLXscreenInfo *glxScreen = &__glXActiveScreens[s];
258
257
          
259
258
               cfg = FindMatchingFBConfig( &dmxScreen0->fbconfigs[c],
260
259
                                           dmxScreen->fbconfigs, 
282
281
               __glXFBConfigs[ __glXNumFBConfigs * (numscreens+1) + 1 ] = 
283
282
                       &dmxScreen0->fbconfigs[c];
284
283
 
285
 
               proxy_cfg = Xalloc( sizeof(__GLXFBConfig) );
 
284
               proxy_cfg = malloc( sizeof(__GLXFBConfig) );
286
285
               memcpy( proxy_cfg, cfg, sizeof(__GLXFBConfig) );
287
286
               proxy_cfg->id =  FakeClientID(0);
288
287
               /* visual will be associated later in __glXGetFBConfigs */
328
327
         break;
329
328
   }
330
329
 
331
 
   return( ret );
 
330
   return ret;
332
331
 
333
332
}
334
333
 
339
338
 
340
339
   for (i=0, j=0; i<__glXNumFBConfigs; i++,j+=(__glXNumActiveScreens+1) ) {
341
340
      if ( __glXFBConfigs[j]->id == id) 
342
 
         return( __glXFBConfigs[j] );
 
341
         return __glXFBConfigs[j];
343
342
   }
344
343
 
345
 
   return(NULL);
 
344
   return NULL;
346
345
}
347
346
 
348
347
__GLXFBConfig *glxLookupFBConfigByVID( VisualID vid )
351
350
 
352
351
   for (i=0, j=0; i<__glXNumFBConfigs; i++,j+=(__glXNumActiveScreens+1) ) {
353
352
      if ( __glXFBConfigs[j]->associatedVisualId == vid) 
354
 
         return( __glXFBConfigs[j] );
 
353
         return __glXFBConfigs[j];
355
354
   }
356
355
 
357
 
   return(NULL);
 
356
   return NULL;
358
357
}
359
358
 
360
359
__GLXFBConfig *glxLookupBackEndFBConfig( GLXFBConfigID id, int screen )
364
363
 
365
364
   for (i=0, j=0; i<__glXNumFBConfigs; i++,j+=(__glXNumActiveScreens+1) ) {
366
365
      if ( __glXFBConfigs[j]->id == id) 
367
 
         return( __glXFBConfigs[j+screen+1] );
 
366
         return __glXFBConfigs[j+screen+1];
368
367
   }
369
368
 
370
 
   return(NULL);
 
369
   return NULL;
371
370
 
372
371
}
373
372