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

« back to all changes in this revision

Viewing changes to hw/xfree86/vgahw/vgaCmap.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:
50
50
  /* By the time we are processing requests, we can guarantee that there
51
51
   * is always a colormap installed */
52
52
  
53
 
  *pmaps = miInstalledMaps[pScreen->myNum]->mid;
54
 
  return(1);
 
53
  *pmaps = GetInstalledmiColormap(pScreen)->mid;
 
54
  return 1;
55
55
}
56
56
 
57
57
int
62
62
  /* By the time we are processing requests, we can guarantee that there
63
63
   * is always a colormap installed */
64
64
  
65
 
  *pmaps = miInstalledMaps[pScreen->myNum];
66
 
  return(1);
 
65
  *pmaps = GetInstalledmiColormap(pScreen);
 
66
  return 1;
67
67
}
68
68
 
69
69
int vgaCheckColorMap(ColormapPtr pmap)
70
70
{
71
 
  return (pmap != miInstalledMaps[pmap->pScreen->myNum]);
 
71
  return (pmap != GetInstalledmiColormap(pmap->pScreen));
72
72
}
73
73
 
74
74
 
217
217
vgaInstallColormap(pmap)
218
218
     ColormapPtr        pmap;
219
219
{
220
 
  ColormapPtr oldmap = miInstalledMaps[pmap->pScreen->myNum];
 
220
  ColormapPtr oldmap = GetInstalledmiColormap(pmap->pScreen);
221
221
  int         entries;
222
222
  Pixel *     ppix;
223
223
  xrgb *      prgb;
235
235
  else
236
236
    entries = pmap->pVisual->ColormapEntries;
237
237
 
238
 
  ppix = (Pixel *)xalloc( entries * sizeof(Pixel));
239
 
  prgb = (xrgb *)xalloc( entries * sizeof(xrgb));
240
 
  defs = (xColorItem *)xalloc(entries * sizeof(xColorItem));
 
238
  ppix = (Pixel *)malloc( entries * sizeof(Pixel));
 
239
  prgb = (xrgb *)malloc( entries * sizeof(xrgb));
 
240
  defs = (xColorItem *)malloc(entries * sizeof(xColorItem));
241
241
 
242
242
  if ( oldmap != NOMAPYET)
243
243
    WalkTree( pmap->pScreen, TellLostMap, &oldmap->mid);
244
244
 
245
 
  miInstalledMaps[pmap->pScreen->myNum] = pmap;
 
245
  SetInstalledmiColormap(pmap->pScreen, pmap);
246
246
 
247
247
  for ( i=0; i<entries; i++) ppix[i] = i;
248
248
 
249
 
  QueryColors( pmap, entries, ppix, prgb);
 
249
  QueryColors(pmap, entries, ppix, prgb, serverClient);
250
250
 
251
251
  for ( i=0; i<entries; i++) /* convert xrgbs to xColorItems */
252
252
    {
260
260
 
261
261
  WalkTree(pmap->pScreen, TellGainedMap, &pmap->mid);
262
262
  
263
 
  xfree(ppix);
264
 
  xfree(prgb);
265
 
  xfree(defs);
 
263
  free(ppix);
 
264
  free(prgb);
 
265
  free(defs);
266
266
}
267
267
 
268
268
 
273
273
 
274
274
  ColormapPtr defColormap;
275
275
  
276
 
  if ( pmap != miInstalledMaps[pmap->pScreen->myNum] )
 
276
  if ( pmap != GetInstalledmiColormap(pmap->pScreen))
277
277
    return;
278
278
 
279
279
  dixLookupResourceByType((pointer *)&defColormap, pmap->pScreen->defColormap,
280
280
                          RT_COLORMAP, serverClient, DixInstallAccess);
281
281
 
282
 
  if (defColormap == miInstalledMaps[pmap->pScreen->myNum])
 
282
  if (defColormap == GetInstalledmiColormap(pmap->pScreen))
283
283
    return;
284
284
 
285
285
  (*pmap->pScreen->InstallColormap) (defColormap);