mesa: Changes to 'ubuntu'
debian/changelog | 12 +
debian/control | 3
debian/patches/108_fix_leaks_dri2_screen_creation.patch | 107 ++++++++++++++++
debian/patches/series | 1
4 files changed, 122 insertions(+), 1 deletion(-)
New commits:
commit 54e088badb0198655936440091ad8f5fd860aaa0
Author: Bryce Harrington <bryce@canonical.com>
Date: Mon Feb 14 16:03:50 2011 -0800
Bump
diff --git a/debian/changelog b/debian/changelog
index cac8fe3..eff1c45 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,8 +5,10 @@ mesa (7.10-1ubuntu2) natty; urgency=low
applications to fail with error, "BadLength (poly request too large or
internal Xlib length".
(LP: #714280)
+ * Change dep on libudev-dev to not limit to linux-any (fixes FTBS when
+ using pbuilder, see deb bug 600823)
- -- Bryce Harrington <bryce@ubuntu.com> Mon, 14 Feb 2011 11:32:25 -0800
+ -- Bryce Harrington <bryce@ubuntu.com> Mon, 14 Feb 2011 11:44:22 -0800
mesa (7.10-1ubuntu1) natty; urgency=lowe
diff --git a/debian/control b/debian/control
index 48c4f73..cc355dc 100644
--- a/debian/control
+++ b/debian/control
@@ -12,7 +12,8 @@ Build-Depends: debhelper (>= 7.2.7), quilt (>= 0.40), pkg-config,
libxdamage-dev, libxext-dev, autoconf, automake, x11proto-dri2-dev (>= 2.1),
linux-libc-dev (>= 2.6.31) [linux-any],
libx11-xcb-dev, libxcb-dri2-0-dev, libxcb-xfixes0-dev, python-libxml2,
- libtalloc-dev, libudev-dev [linux-any],
+# libtalloc-dev, libudev-dev [linux-any],
+ libtalloc-dev, libudev-dev,
Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/mesa
Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/mesa.git
Homepage: http://mesa3d.sourceforge.net/
commit 5e6e8ebf658714712f496f941a38946c1d1cdc6a
Author: Bryce Harrington <bryce@canonical.com>
Date: Mon Feb 14 11:35:22 2011 -0800
Add 108_fix_leaks_dri2_screen_creation.patch: Cherrypick from upstream to fix leaks in DRI2 screen creation error paths, which causes Clutter applications to fail with error, "BadLength (poly request too large or internal Xlib length". (LP: #714280)
diff --git a/debian/changelog b/debian/changelog
index dbac118..cac8fe3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+mesa (7.10-1ubuntu2) natty; urgency=low
+
+ * Add 108_fix_leaks_dri2_screen_creation.patch: Cherrypick from upstream
+ to fix leaks in DRI2 screen creation error paths, which causes Clutter
+ applications to fail with error, "BadLength (poly request too large or
+ internal Xlib length".
+ (LP: #714280)
+
+ -- Bryce Harrington <bryce@ubuntu.com> Mon, 14 Feb 2011 11:32:25 -0800
+
mesa (7.10-1ubuntu1) natty; urgency=lowe
* Merge from Debian experimental. Remaining Ubuntu changes:
diff --git a/debian/patches/108_fix_leaks_dri2_screen_creation.patch b/debian/patches/108_fix_leaks_dri2_screen_creation.patch
new file mode 100644
index 0000000..6f5b7a7
--- /dev/null
+++ b/debian/patches/108_fix_leaks_dri2_screen_creation.patch
@@ -0,0 +1,107 @@
+From bfc889517ad0d490cce1817eecac146d66bcd923 Mon Sep 17 00:00:00 2001
+From: Henri Verbeet <hverbeet@gmail.com>
+Date: Sat, 29 Jan 2011 23:00:48 +0000
+Subject: glx: Fix leaks in DRI2 screen creation error paths.
+
+Signed-off-by: Brian Paul <brianp@vmware.com>
+---
+diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c
+index 75b1a10..ab7915c 100644
+--- a/src/glx/dri2_glx.c
++++ b/src/glx/dri2_glx.c
+@@ -804,11 +804,14 @@ dri2CreateScreen(int screen, struct glx_display * priv)
+ return NULL;
+
+ memset(psc, 0, sizeof *psc);
+- if (!glx_screen_init(&psc->base, screen, priv))
+- return NULL;
++ if (!glx_screen_init(&psc->base, screen, priv)) {
++ Xfree(psc);
++ return NULL;
++ }
+
+ if (!DRI2Connect(priv->dpy, RootWindow(priv->dpy, screen),
+ &driverName, &deviceName)) {
++ glx_screen_cleanup(&psc->base);
+ XFree(psc);
+ return NULL;
+ }
+@@ -918,12 +921,15 @@ dri2CreateScreen(int screen, struct glx_display * priv)
+ return &psc->base;
+
+ handle_error:
++ if (psc->fd)
++ close(psc->fd);
++ if (psc->driver)
++ dlclose(psc->driver);
+ Xfree(driverName);
+ Xfree(deviceName);
++ glx_screen_cleanup(&psc->base);
+ XFree(psc);
+
+- /* FIXME: clean up here */
+-
+ return NULL;
+ }
+
+diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h
+index 36a0808..fdcef80 100644
+--- a/src/glx/glxclient.h
++++ b/src/glx/glxclient.h
+@@ -585,6 +585,8 @@ struct glx_display
+ extern int
+ glx_screen_init(struct glx_screen *psc,
+ int screen, struct glx_display * priv);
++extern void
++glx_screen_cleanup(struct glx_screen *psc);
+
+ #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
+ extern __GLXDRIdrawable *
+diff --git a/src/glx/glxext.c b/src/glx/glxext.c
+index c75c9bf..25d266e 100644
+--- a/src/glx/glxext.c
++++ b/src/glx/glxext.c
+@@ -194,17 +194,7 @@ FreeScreenConfigs(struct glx_display * priv)
+ screens = ScreenCount(priv->dpy);
+ for (i = 0; i < screens; i++) {
+ psc = priv->screens[i];
+- if (psc->configs) {
+- glx_config_destroy_list(psc->configs);
+- if (psc->effectiveGLXexts)
+- Xfree(psc->effectiveGLXexts);
+- psc->configs = NULL; /* NOTE: just for paranoia */
+- }
+- if (psc->visuals) {
+- glx_config_destroy_list(psc->visuals);
+- psc->visuals = NULL; /* NOTE: just for paranoia */
+- }
+- Xfree((char *) psc->serverGLXexts);
++ glx_screen_cleanup(psc);
+
+ #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
+ if (psc->driScreen) {
+@@ -728,6 +718,22 @@ glx_screen_init(struct glx_screen *psc,
+ return GL_TRUE;
+ }
+
++_X_HIDDEN void
++glx_screen_cleanup(struct glx_screen *psc)
++{
++ if (psc->configs) {
++ glx_config_destroy_list(psc->configs);
++ if (psc->effectiveGLXexts)
++ Xfree(psc->effectiveGLXexts);
++ psc->configs = NULL; /* NOTE: just for paranoia */
++ }
++ if (psc->visuals) {
++ glx_config_destroy_list(psc->visuals);
++ psc->visuals = NULL; /* NOTE: just for paranoia */
++ }
++ Xfree((char *) psc->serverGLXexts);
++}
++
+ /*
+ ** Allocate the memory for the per screen configs for each screen.
+ ** If that works then fetch the per screen configs data.
+--
+cgit v0.8.3-6-g21f6
diff --git a/debian/patches/series b/debian/patches/series
index aa5b52a..ab4131f 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -11,3 +11,4 @@
103_savage-expose_fbmodes_with_nonzero_alpha.patch
105_use_shared_libdricore.patch
107_winsys_buffer_nullptr.patch
+108_fix_leaks_dri2_screen_creation.patch
Reply to: