Hello community,

here is the log from the commit of package DirectFB for openSUSE:Factory 
checked in at 2015-04-02 16:02:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/DirectFB (Old)
 and      /work/SRC/openSUSE:Factory/.DirectFB.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "DirectFB"

Changes:
--------
--- /work/SRC/openSUSE:Factory/DirectFB/DirectFB.changes        2015-02-06 
10:45:20.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.DirectFB.new/DirectFB.changes   2015-04-02 
16:02:14.000000000 +0200
@@ -1,0 +2,19 @@
+Mon Mar 30 06:29:54 UTC 2015 - [email protected]
+
+- security update
+  * CVE-2014-2977 [bnc#878345]
+    + DirectFB-CVE-2014-2977.patch
+  * CVE-2014-2978 [bnc#878349]
+    + DirectFB-CVE-2014-2978.patch
+
+-------------------------------------------------------------------
+Mon Mar 23 08:54:48 UTC 2015 - [email protected]
+
+- Update to version 1.7.7
+  * Core: allow access to core part data during its initialisation
+  * Client: Create extended Graphics State object when needed for 
+    later usage
+  * Core: Cascaded interlock in favor of optimization.
+  * libfusion: deallocate call tls properly
+
+-------------------------------------------------------------------

Old:
----
  DirectFB-1.7.6.tar.gz

New:
----
  DirectFB-1.7.7.tar.gz
  DirectFB-CVE-2014-2977.patch
  DirectFB-CVE-2014-2978.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ DirectFB.spec ++++++
--- /var/tmp/diff_new_pack.rSEdHw/_old  2015-04-02 16:02:15.000000000 +0200
+++ /var/tmp/diff_new_pack.rSEdHw/_new  2015-04-02 16:02:15.000000000 +0200
@@ -16,12 +16,12 @@
 #
 
 
-%global directfbdir %{_libdir}/directfb-1.7-6
-%global libdirectfb    libdirectfb-1_7-6
-%global libdfb          lib++dfb-1_7-6
+%global directfbdir %{_libdir}/directfb-1.7-7
+%global libdirectfb    libdirectfb-1_7-7
+%global libdfb          lib++dfb-1_7-7
 
 Name:           DirectFB
-Version:        1.7.6
+Version:        1.7.7
 Release:        0
 Summary:        Graphics Library for Framebuffer Devices
 License:        LGPL-2.1+
@@ -60,6 +60,8 @@
 Patch20:        DirectFB-setregion.patch 
 # PATCH-FIX_OPENSUSE drop test_foo as it does not build in 1.7, 
[email protected]
 Patch21:        DirectFB-1.7.3-drop-test_foo.patch
+Patch22:        DirectFB-CVE-2014-2977.patch
+Patch23:        DirectFB-CVE-2014-2978.patch
 BuildRequires:  LibVNCServer-devel
 %if 0%{?suse_version} > 1220
 # Mesa-lib* available only in 12.2+
@@ -221,6 +223,8 @@
 %patch19 -p1 -b .fusionID
 %patch20 -p1
 %patch21 -p1
+%patch22
+%patch23
 
 #Disable ppc asm since compilation fails (and it seems better to use glibc)
 sed -i.noppcasm -e 's/want_ppcasm=yes/want_ppcasm=no/'g configure.in configure

++++++ DirectFB-1.7.6.tar.gz -> DirectFB-1.7.7.tar.gz ++++++
++++ 1694 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/ChangeLog new/DirectFB-1.7.7/ChangeLog
--- old/DirectFB-1.7.6/ChangeLog        2014-08-14 09:17:47.000000000 +0200
+++ new/DirectFB-1.7.7/ChangeLog        2015-02-09 18:16:46.000000000 +0100
@@ -1,3 +1,81 @@
+commit 56ba4031a184031c1149f1e0f73214509e9c0293
+Author: Denis Oliver Kropp <[email protected]>
+Date:   Mon Nov 17 12:19:49 2014 +0100
+
+    Core: allow access to core part data during its initialisation
+
+commit 0b0c22d6a1ddfa894b1240cd375931934f033e60
+Author: Denis Oliver Kropp <[email protected]>
+Date:   Fri Oct 31 13:53:07 2014 +0100
+
+    configure: Evaluate module directory to show final directory
+
+commit 6fece410a5b946f1c0c017a66ea5884c7747dbcf
+Author: Denis Oliver Kropp <[email protected]>
+Date:   Fri Oct 31 13:51:13 2014 +0100
+
+    configure: Change --with-sysroot option to --with-runtime-sysroot to avoid 
conflict with newer autoconf
+
+commit 549eb402b3141fb98c64f31bf84d116e2234fbe0
+Author: Denis Oliver Kropp <[email protected]>
+Date:   Sat Sep 20 15:35:10 2014 +0200
+
+    mknames: add typecast to avoid errors with C++
+
+commit 4d422fbdf6add491f20164b8b33a0b7b9064b06c
+Author: Denis Oliver Kropp <[email protected]>
+Date:   Sun Feb 1 10:15:13 2015 +0100
+
+    Client: Create extended Graphics State object when needed for later usage
+
+commit 3a960cc384f97ea07e72385b442d6f65583a40cf
+Author: Denis Oliver Kropp <[email protected]>
+Date:   Sun Feb 1 10:18:12 2015 +0100
+
+    ignore
+
+commit 618c81557d92e75351303c95aa086dd9657d7170
+Author: Denis Oliver Kropp <[email protected]>
+Date:   Sun Feb 1 10:16:23 2015 +0100
+
+    debug: add some timing info to surface interface construct / destruct
+
+commit e5c8ab0e391ef139b9efc143053994a0bb34c409
+Author: Denis Oliver Kropp <[email protected]>
+Date:   Sun Feb 1 10:04:27 2015 +0100
+
+    Core: Cascaded interlock in favor of optimization.
+
+commit 6f09d498b57d3559ba22e0d043664303a0ee1c37
+Author: Denis Oliver Kropp <[email protected]>
+Date:   Sun Feb 1 10:01:24 2015 +0100
+
+    libfusion: deallocate call tls properly
+
+commit 36566929135390deb249c89ed657c057942a58fc
+Author: Denis Oliver Kropp <[email protected]>
+Date:   Sun Feb 1 09:58:42 2015 +0100
+
+    1.7.7
+
+commit 2f4f78cc43fa7e6ee8411c5f284aa533ad003729
+Author: Denis Oliver Kropp <[email protected]>
+Date:   Sun Feb 1 09:56:19 2015 +0100
+
+    2015
+
+commit 09d8d058ced264a3a7fd4041bbc4c95893d42691
+Author: Denis Oliver Kropp <[email protected]>
+Date:   Tue Nov 4 08:38:19 2014 +0100
+
+    Core: When creating the layer surface also pass along the DSCAPS_GL flag.
+
+commit e2221b1dcad2c44f57b8f8e962c3e0816f393b94
+Author: Denis Oliver Kropp <[email protected]>
+Date:   Thu Aug 14 09:21:39 2014 +0200
+
+    directfb 1.7.6
+
 commit 4b4ca723b8dc7d83b8cd8c709f4b0d5e7a96e06b
 Author: Denis Oliver Kropp <[email protected]>
 Date:   Thu Aug 14 09:17:21 2014 +0200
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/configure.in new/DirectFB-1.7.7/configure.in
--- old/DirectFB-1.7.6/configure.in     2014-08-14 09:19:24.000000000 +0200
+++ new/DirectFB-1.7.7/configure.in     2015-02-09 18:16:46.000000000 +0100
@@ -16,7 +16,7 @@
 #
 DIRECTFB_MAJOR_VERSION=1
 DIRECTFB_MINOR_VERSION=7
-DIRECTFB_MICRO_VERSION=6
+DIRECTFB_MICRO_VERSION=7
 DIRECTFB_INTERFACE_AGE=0
 DIRECTFB_BINARY_AGE=0
 
DIRECTFB_VERSION=$DIRECTFB_MAJOR_VERSION.$DIRECTFB_MINOR_VERSION.$DIRECTFB_MICRO_VERSION
@@ -2624,8 +2624,8 @@
 
 
 # Sysroot used for runtime module loading, etc.
-AC_ARG_WITH(sysroot,
-            AC_HELP_STRING([--with-sysroot=DIR],
+AC_ARG_WITH(runtime-sysroot,
+            AC_HELP_STRING([--with-runtime-sysroot=DIR],
                            [search for lib/share et al within DIR at runtime,]
                            [e.g. when loading modules]),
             [RUNTIME_SYSROOT="$withval"], [RUNTIME_SYSROOT=])
@@ -2981,6 +2981,10 @@
 ], [chmod +x directfb-config])
 
 
+eval eval_moduledir=$MODULEDIR
+eval eval_moduledir=$eval_moduledir
+eval eval_moduledir=$eval_moduledir
+
 
 AC_MSG_RESULT([
 Build options:
@@ -2990,7 +2994,7 @@
   Config files in           $SYSCONFDIR
   Build shared libs         $enable_shared
   Build static libs         $enable_static
-  Module directory          $MODULEDIR
+  Module directory          $eval_moduledir
   CC                        $CC
   CXX                       $CXX
   LD                        $LD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/directfb.spec new/DirectFB-1.7.7/directfb.spec
--- old/DirectFB-1.7.6/directfb.spec    2014-08-14 09:22:23.000000000 +0200
+++ new/DirectFB-1.7.7/directfb.spec    2015-02-11 15:44:46.000000000 +0100
@@ -1,5 +1,5 @@
 %define name directfb
-%define version 1.7.6
+%define version 1.7.7
 %define oname DirectFB
 %define libname lib%name
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/include/directfb_keynames.h 
new/DirectFB-1.7.7/include/directfb_keynames.h
--- old/DirectFB-1.7.6/include/directfb_keynames.h      2014-08-14 
09:22:59.000000000 +0200
+++ new/DirectFB-1.7.7/include/directfb_keynames.h      2015-02-11 
15:44:56.000000000 +0100
@@ -517,7 +517,7 @@
      { DIKS_CUSTOM253, "CUSTOM253" }, \
      { DIKS_CUSTOM254, "CUSTOM254" }, \
      { DIKS_CUSTOM255, "CUSTOM255" }, \
-     { DIKS_NULL, "NULL" } \
+     { (DFBInputDeviceKeySymbol) DIKS_NULL, "NULL" } \
 };
 
 
@@ -643,7 +643,7 @@
      { DIKI_KP_7, "KP_7" }, \
      { DIKI_KP_8, "KP_8" }, \
      { DIKI_KP_9, "KP_9" }, \
-     { DIKI_UNKNOWN, "UNKNOWN" } \
+     { (DFBInputDeviceKeyIdentifier) DIKI_UNKNOWN, "UNKNOWN" } \
 };
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/include/directfb_strings.h 
new/DirectFB-1.7.7/include/directfb_strings.h
--- old/DirectFB-1.7.6/include/directfb_strings.h       2014-08-14 
09:22:59.000000000 +0200
+++ new/DirectFB-1.7.7/include/directfb_strings.h       2015-02-11 
15:44:56.000000000 +0100
@@ -51,7 +51,7 @@
      { DSPF_LUT4, "LUT4" }, \
      { DSPF_ALUT8, "ALUT8" }, \
      { DSPF_LUT1, "LUT1" }, \
-     { DSPF_UNKNOWN, "UNKNOWN" } \
+     { (DFBSurfacePixelFormat) DSPF_UNKNOWN, "UNKNOWN" } \
 };
 
 
@@ -74,7 +74,7 @@
      { DSPD_ADD, "ADD" }, \
      { DSPD_XOR, "XOR" }, \
      { DSPD_DST, "DST" }, \
-     { DSPD_NONE, "NONE" } \
+     { (DFBSurfacePorterDuffRule) DSPD_NONE, "NONE" } \
 };
 
 
@@ -100,7 +100,7 @@
      { DSCAPS_STEREO, "STEREO" }, \
      { DSCAPS_SHARED, "SHARED" }, \
      { DSCAPS_ROTATED, "ROTATED" }, \
-     { DSCAPS_NONE, "NONE" } \
+     { (DFBSurfaceCapabilities) DSCAPS_NONE, "NONE" } \
 };
 
 
@@ -114,7 +114,7 @@
      { DSCS_BT601, "BT601" }, \
      { DSCS_BT601_FULLRANGE, "BT601_FULLRANGE" }, \
      { DSCS_BT709, "BT709" }, \
-     { DSCS_UNKNOWN, "UNKNOWN" } \
+     { (DFBSurfaceColorSpace) DSCS_UNKNOWN, "UNKNOWN" } \
 };
 
 
@@ -129,7 +129,7 @@
      { DIDTF_JOYSTICK, "JOYSTICK" }, \
      { DIDTF_REMOTE, "REMOTE" }, \
      { DIDTF_VIRTUAL, "VIRTUAL" }, \
-     { DIDTF_NONE, "NONE" } \
+     { (DFBInputDeviceTypeFlags) DIDTF_NONE, "NONE" } \
 };
 
 
@@ -145,7 +145,7 @@
      { DSDRAW_DST_PREMULTIPLY, "DST_PREMULTIPLY" }, \
      { DSDRAW_DEMULTIPLY, "DEMULTIPLY" }, \
      { DSDRAW_XOR, "XOR" }, \
-     { DSDRAW_NOFX, "NOFX" } \
+     { (DFBSurfaceDrawingFlags) DSDRAW_NOFX, "NOFX" } \
 };
 
 
@@ -180,7 +180,7 @@
      { DSBLIT_ROP, "ROP" }, \
      { DSBLIT_SRC_COLORMATRIX, "SRC_COLORMATRIX" }, \
      { DSBLIT_SRC_CONVOLUTION, "SRC_CONVOLUTION" }, \
-     { DSBLIT_NOFX, "NOFX" } \
+     { (DFBSurfaceBlittingFlags) DSBLIT_NOFX, "NOFX" } \
 };
 
 
@@ -201,7 +201,7 @@
      { DSFLIP_SWAP, "SWAP" }, \
      { DSFLIP_UPDATE, "UPDATE" }, \
      { DSFLIP_WAITFORSYNC, "WAITFORSYNC" }, \
-     { DSFLIP_NONE, "NONE" } \
+     { (DFBSurfaceFlipFlags) DSFLIP_NONE, "NONE" } \
 };
 
 
@@ -222,7 +222,7 @@
      { DSBF_DESTCOLOR, "DESTCOLOR" }, \
      { DSBF_INVDESTCOLOR, "INVDESTCOLOR" }, \
      { DSBF_SRCALPHASAT, "SRCALPHASAT" }, \
-     { DSBF_UNKNOWN, "UNKNOWN" } \
+     { (DFBSurfaceBlendFunction) DSBF_UNKNOWN, "UNKNOWN" } \
 };
 
 
@@ -235,7 +235,7 @@
      { DICAPS_KEYS, "KEYS" }, \
      { DICAPS_AXES, "AXES" }, \
      { DICAPS_BUTTONS, "BUTTONS" }, \
-     { DICAPS_NONE, "NONE" } \
+     { (DFBInputDeviceCapabilities) DICAPS_NONE, "NONE" } \
 };
 
 
@@ -249,7 +249,7 @@
      { DLTF_VIDEO, "VIDEO" }, \
      { DLTF_STILL_PICTURE, "STILL_PICTURE" }, \
      { DLTF_BACKGROUND, "BACKGROUND" }, \
-     { DLTF_NONE, "NONE" } \
+     { (DFBDisplayLayerTypeFlags) DLTF_NONE, "NONE" } \
 };
 
 
@@ -282,7 +282,7 @@
      { DLCAPS_CLIP_REGIONS, "CLIP_REGIONS" }, \
      { DLCAPS_LR_MONO, "LR_MONO" }, \
      { DLCAPS_STEREO, "STEREO" }, \
-     { DLCAPS_NONE, "NONE" } \
+     { (DFBDisplayLayerCapabilities) DLCAPS_NONE, "NONE" } \
 };
 
 
@@ -297,7 +297,7 @@
      { DLBM_BACKSYSTEM, "BACKSYSTEM" }, \
      { DLBM_TRIPLE, "TRIPLE" }, \
      { DLBM_WINDOWS, "WINDOWS" }, \
-     { DLBM_UNKNOWN, "UNKNOWN" } \
+     { (DFBDisplayLayerBufferMode) DLBM_UNKNOWN, "UNKNOWN" } \
 };
 
 
@@ -317,7 +317,7 @@
      { DWCAPS_NOFOCUS, "NOFOCUS" }, \
      { DWCAPS_LR_MONO, "LR_MONO" }, \
      { DWCAPS_STEREO, "STEREO" }, \
-     { DWCAPS_NONE, "NONE" } \
+     { (DFBWindowCapabilities) DWCAPS_NONE, "NONE" } \
 };
 
 
@@ -337,7 +337,7 @@
      { DLOP_LR_MONO, "LR_MONO" }, \
      { DLOP_STEREO, "STEREO" }, \
      { DLOP_STEREO, "STEREO" }, \
-     { DLOP_NONE, "NONE" } \
+     { (DFBDisplayLayerOptions) DLOP_NONE, "NONE" } \
 };
 
 
@@ -363,7 +363,7 @@
      { DWOP_KEEP_ABOVE, "KEEP_ABOVE" }, \
      { DWOP_KEEP_UNDER, "KEEP_UNDER" }, \
      { DWOP_FOLLOW_BOUNDS, "FOLLOW_BOUNDS" }, \
-     { DWOP_NONE, "NONE" } \
+     { (DFBWindowOptions) DWOP_NONE, "NONE" } \
 };
 
 
@@ -378,7 +378,7 @@
      { DSCCAPS_MIXERS, "MIXERS" }, \
      { DSCCAPS_ENCODERS, "ENCODERS" }, \
      { DSCCAPS_OUTPUTS, "OUTPUTS" }, \
-     { DSCCAPS_NONE, "NONE" } \
+     { (DFBScreenCapabilities) DSCCAPS_NONE, "NONE" } \
 };
 
 
@@ -403,7 +403,7 @@
      { DSECAPS_RESOLUTION, "RESOLUTION" }, \
      { DSECAPS_FRAMING, "FRAMING" }, \
      { DSECAPS_ASPECT_RATIO, "ASPECT_RATIO" }, \
-     { DSECAPS_NONE, "NONE" } \
+     { (DFBScreenEncoderCapabilities) DSECAPS_NONE, "NONE" } \
 };
 
 
@@ -416,7 +416,7 @@
      { DSET_CRTC, "CRTC" }, \
      { DSET_TV, "TV" }, \
      { DSET_DIGITAL, "DIGITAL" }, \
-     { DSET_UNKNOWN, "UNKNOWN" } \
+     { (DFBScreenEncoderType) DSET_UNKNOWN, "UNKNOWN" } \
 };
 
 
@@ -438,7 +438,7 @@
      { DSETV_NTSC_M_JPN, "NTSC_M_JPN" }, \
      { DSETV_DIGITAL, "DIGITAL" }, \
      { DSETV_NTSC_443, "NTSC_443" }, \
-     { DSETV_UNKNOWN, "UNKNOWN" } \
+     { (DFBScreenEncoderTVStandards) DSETV_UNKNOWN, "UNKNOWN" } \
 };
 
 
@@ -454,7 +454,7 @@
      { DSOCAPS_CONNECTOR_SEL, "CONNECTOR_SEL" }, \
      { DSOCAPS_SLOW_BLANKING, "SLOW_BLANKING" }, \
      { DSOCAPS_RESOLUTION, "RESOLUTION" }, \
-     { DSOCAPS_NONE, "NONE" } \
+     { (DFBScreenOutputCapabilities) DSOCAPS_NONE, "NONE" } \
 };
 
 
@@ -472,7 +472,7 @@
      { DSOC_COMPONENT, "COMPONENT" }, \
      { DSOC_HDMI, "HDMI" }, \
      { DSOC_656, "656" }, \
-     { DSOC_UNKNOWN, "UNKNOWN" } \
+     { (DFBScreenOutputConnectors) DSOC_UNKNOWN, "UNKNOWN" } \
 };
 
 
@@ -489,7 +489,7 @@
      { DSOS_YCBCR, "YCBCR" }, \
      { DSOS_HDMI, "HDMI" }, \
      { DSOS_656, "656" }, \
-     { DSOS_NONE, "NONE" } \
+     { (DFBScreenOutputSignals) DSOS_NONE, "NONE" } \
 };
 
 
@@ -503,7 +503,7 @@
      { DSOSB_4x3, "4x3" }, \
      { DSOSB_FOLLOW, "FOLLOW" }, \
      { DSOSB_MONITOR, "MONITOR" }, \
-     { DSOSB_OFF, "OFF" } \
+     { (DFBScreenOutputSlowBlankingSignals) DSOSB_OFF, "OFF" } \
 };
 
 
@@ -536,7 +536,7 @@
      { DSOR_2560_1600, "2560_1600" }, \
      { DSOR_3840_2160, "3840_2160" }, \
      { DSOR_4096_2160, "4096_2160" }, \
-     { DSOR_UNKNOWN, "UNKNOWN" } \
+     { (DFBScreenOutputResolution) DSOR_UNKNOWN, "UNKNOWN" } \
 };
 
 
@@ -550,7 +550,7 @@
      { DSMCAPS_SUB_LEVEL, "SUB_LEVEL" }, \
      { DSMCAPS_SUB_LAYERS, "SUB_LAYERS" }, \
      { DSMCAPS_BACKGROUND, "BACKGROUND" }, \
-     { DSMCAPS_NONE, "NONE" } \
+     { (DFBScreenMixerCapabilities) DSMCAPS_NONE, "NONE" } \
 };
 
 
@@ -563,7 +563,7 @@
      { DSMT_FULL, "FULL" }, \
      { DSMT_SUB_LEVEL, "SUB_LEVEL" }, \
      { DSMT_SUB_LAYERS, "SUB_LAYERS" }, \
-     { DSMT_UNKNOWN, "UNKNOWN" } \
+     { (DFBScreenMixerTree) DSMT_UNKNOWN, "UNKNOWN" } \
 };
 
 
@@ -583,7 +583,7 @@
      { DSETP_RED, "RED" }, \
      { DSETP_BLUE, "BLUE" }, \
      { DSETP_BLACK, "BLACK" }, \
-     { DSETP_OFF, "OFF" } \
+     { (DFBScreenEncoderTestPicture) DSETP_OFF, "OFF" } \
 };
 
 
@@ -595,7 +595,7 @@
 #define DirectFBScreenEncoderScanModeNames(Identifier) struct 
DFBScreenEncoderScanModeName Identifier[] = { \
      { DSESM_INTERLACED, "INTERLACED" }, \
      { DSESM_PROGRESSIVE, "PROGRESSIVE" }, \
-     { DSESM_UNKNOWN, "UNKNOWN" } \
+     { (DFBScreenEncoderScanMode) DSESM_UNKNOWN, "UNKNOWN" } \
 };
 
 
@@ -619,7 +619,7 @@
      { DSECONF_RESOLUTION, "RESOLUTION" }, \
      { DSECONF_FRAMING, "FRAMING" }, \
      { DSECONF_ASPECT_RATIO, "ASPECT_RATIO" }, \
-     { DSECONF_UNKNOWN, "UNKNOWN" } \
+     { (DFBScreenEncoderConfigFlags) DSECONF_UNKNOWN, "UNKNOWN" } \
 };
 
 
@@ -638,7 +638,7 @@
      { DSEF_30HZ, "30HZ" }, \
      { DSEF_24HZ, "24HZ" }, \
      { DSEF_23_976HZ, "23_976HZ" }, \
-     { DSEF_UNKNOWN, "UNKNOWN" } \
+     { (DFBScreenEncoderFrequency) DSEF_UNKNOWN, "UNKNOWN" } \
 };
 
 
@@ -653,7 +653,7 @@
      { DSEPF_STEREO_TOP_AND_BOTTOM, "STEREO_TOP_AND_BOTTOM" }, \
      { DSEPF_STEREO_FRAME_PACKING, "STEREO_FRAME_PACKING" }, \
      { DSEPF_STEREO_SIDE_BY_SIDE_FULL, "STEREO_SIDE_BY_SIDE_FULL" }, \
-     { DSEPF_UNKNOWN, "UNKNOWN" } \
+     { (DFBScreenEncoderPictureFraming) DSEPF_UNKNOWN, "UNKNOWN" } \
 };
 
 
@@ -677,7 +677,7 @@
      { DFXL_BLIT2, "BLIT2" }, \
      { DFXL_TILEBLIT, "TILEBLIT" }, \
      { DFXL_DRAWSTRING, "DRAWSTRING" }, \
-     { DFXL_NONE, "NONE" } \
+     { (DFBAccelerationMask) DFXL_NONE, "NONE" } \
 };
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/include/directfb_version.h 
new/DirectFB-1.7.7/include/directfb_version.h
--- old/DirectFB-1.7.6/include/directfb_version.h       2014-08-14 
09:22:23.000000000 +0200
+++ new/DirectFB-1.7.7/include/directfb_version.h       2015-02-11 
15:44:46.000000000 +0100
@@ -31,7 +31,7 @@
 
 #define DIRECTFB_MAJOR_VERSION  (1)
 #define DIRECTFB_MINOR_VERSION  (7)
-#define DIRECTFB_MICRO_VERSION  (6)
+#define DIRECTFB_MICRO_VERSION  (7)
 #define DIRECTFB_BINARY_AGE     (0)
 #define DIRECTFB_INTERFACE_AGE  (0)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/include/directfb_water_strings.h 
new/DirectFB-1.7.7/include/directfb_water_strings.h
--- old/DirectFB-1.7.6/include/directfb_water_strings.h 2014-08-14 
09:22:59.000000000 +0200
+++ new/DirectFB-1.7.7/include/directfb_water_strings.h 2015-02-11 
15:44:56.000000000 +0100
@@ -33,7 +33,7 @@
      { WET_QUAD_CURVE_STRIP, "QUAD_CURVE_STRIP" }, \
      { WET_CUBIC_CURVE, "CUBIC_CURVE" }, \
      { WET_CUBIC_CURVE_STRIP, "CUBIC_CURVE_STRIP" }, \
-     { WET_UNKNOWN, "UNKNOWN" } \
+     { (WaterElementType) WET_UNKNOWN, "UNKNOWN" } \
 };
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/lib/fusion/call.c new/DirectFB-1.7.7/lib/fusion/call.c
--- old/DirectFB-1.7.6/lib/fusion/call.c        2014-07-15 17:59:08.000000000 
+0200
+++ new/DirectFB-1.7.7/lib/fusion/call.c        2015-02-01 10:01:44.000000000 
+0100
@@ -79,14 +79,74 @@
 
 static DirectTLS call_tls_key;
 
+DirectResult
+flush_calls( FusionWorld *world, int lock, CallTLS *call_tls )
+{
+     DirectResult  ret = DR_OK;
+
+     D_DEBUG_AT( Fusion_Call, "%s( %p, lock %d )\n", __FUNCTION__, world, lock 
);
+
+     if (call_tls->bins_num > 0) {
+#if D_DEBUG_ENABLED
+          D_DEBUG_AT( Fusion_Call, "  -> num %d, length %u\n", 
call_tls->bins_num, call_tls->bins_data_len );
+
+          if (direct_log_domain_check( &Fusion_Call )) {
+               int i;
+
+               for (i=0; i<call_tls->bins_num; i++) {
+                    D_DEBUG_AT( Fusion_Call, "  -> [%2d] call_id 0x%08x, 
call_arg %3d, length %3u, flasg 0x%08x\n", i,
+                                call_tls->bins[i].call_id,
+                                call_tls->bins[i].call_arg,
+                                call_tls->bins[i].length,
+                                call_tls->bins[i].flags );
+               }
+          }
+#endif
+
+          if (call_tls->dispatcher) {
+               D_DEBUG_AT( Fusion_Call, "  -> I AM THE DISPATCHER, NOT 
FLUSHING\n" );
+               D_WARN("no flush in dispatcher");
+               return DR_OK;
+          }
+
+          call_tls->bins[call_tls->bins_num - 1].flags &= ~(FCEF_FOLLOW | 
FCEF_QUEUE);
+
+          while (ioctl( world->fusion_fd, FUSION_CALL_EXECUTE3, call_tls->bins 
)) {
+               switch (errno) {
+                    case EINTR:
+                         continue;
+                    case EINVAL:
+                         D_ERROR ("Fusion/Call: invalid call (id 0x%08x)\n", 
call_tls->bins[0].call_id);
+                         ret = DR_INVARG;
+                         break;
+                    case EIDRM:
+                         D_ERROR ("Fusion/Call: call got destroyed (id 
0x%08x)\n", call_tls->bins[0].call_id);
+                         ret = DR_DESTROYED;
+                         break;
+                    default:
+                         break;
+               }
+
+               D_PERROR ("FUSION_CALL_EXECUTE3 (num %d, len %d)", 
call_tls->bins_num, call_tls->bins_data_len );
+
+               ret = DR_FAILURE;
+               break;
+          }
+
+          call_tls->bins_num      = 0;
+          call_tls->bins_data_len = 0;
+     }
+
+     return ret;
+}
+
 static void
 call_tls_destroy( void *arg )
 {
      CallTLS *call_tls = arg;
-
      D_MAGIC_ASSERT( call_tls, CallTLS );
 
-     fusion_world_flush_calls( call_tls->world, 0 );
+     flush_calls( call_tls->world, 0, call_tls );
 
      D_ASSUME( call_tls->bins_num == 0 );
 
@@ -600,65 +660,13 @@
 DirectResult
 fusion_world_flush_calls( FusionWorld *world, int lock )
 {
-     DirectResult  ret = DR_OK;
-     CallTLS      *call_tls;
+     CallTLS *call_tls;
 
      call_tls = Call_GetTLS( world );
 
      D_DEBUG_AT( Fusion_Call, "%s( %p, lock %d )\n", __FUNCTION__, world, lock 
);
 
-     if (call_tls->bins_num > 0) {
-#if D_DEBUG_ENABLED
-          D_DEBUG_AT( Fusion_Call, "  -> num %d, length %u\n", 
call_tls->bins_num, call_tls->bins_data_len );
-
-          if (direct_log_domain_check( &Fusion_Call )) {
-               int i;
-
-               for (i=0; i<call_tls->bins_num; i++) {
-                    D_DEBUG_AT( Fusion_Call, "  -> [%2d] call_id 0x%08x, 
call_arg %3d, length %3u, flasg 0x%08x\n", i,
-                                call_tls->bins[i].call_id,
-                                call_tls->bins[i].call_arg,
-                                call_tls->bins[i].length,
-                                call_tls->bins[i].flags );
-               }
-          }
-#endif
-
-          if (call_tls->dispatcher) {
-               D_DEBUG_AT( Fusion_Call, "  -> I AM THE DISPATCHER, NOT 
FLUSHING\n" );
-               D_WARN("no flush in dispatcher");
-               return DR_OK;
-          }
-
-          call_tls->bins[call_tls->bins_num - 1].flags &= ~(FCEF_FOLLOW | 
FCEF_QUEUE);
-
-          while (ioctl( world->fusion_fd, FUSION_CALL_EXECUTE3, call_tls->bins 
)) {
-               switch (errno) {
-                    case EINTR:
-                         continue;
-                    case EINVAL:
-                         D_ERROR ("Fusion/Call: invalid call (id 0x%08x)\n", 
call_tls->bins[0].call_id);
-                         ret = DR_INVARG;
-                         break;
-                    case EIDRM:
-                         D_ERROR ("Fusion/Call: call got destroyed (id 
0x%08x)\n", call_tls->bins[0].call_id);
-                         ret = DR_DESTROYED;
-                         break;
-                    default:
-                         break;
-               }
-
-               D_PERROR ("FUSION_CALL_EXECUTE3 (num %d, len %d)", 
call_tls->bins_num, call_tls->bins_data_len );
-
-               ret = DR_FAILURE;
-               break;
-          }
-
-          call_tls->bins_num      = 0;
-          call_tls->bins_data_len = 0;
-     }
-
-     return ret;
+     return flush_calls( world, lock, call_tls );
 }
 
 DirectResult
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/lib/fusiondale/fusiondale_version.h 
new/DirectFB-1.7.7/lib/fusiondale/fusiondale_version.h
--- old/DirectFB-1.7.6/lib/fusiondale/fusiondale_version.h      2014-08-14 
09:22:23.000000000 +0200
+++ new/DirectFB-1.7.7/lib/fusiondale/fusiondale_version.h      2015-02-11 
15:44:47.000000000 +0100
@@ -26,7 +26,7 @@
 
 #define FUSIONDALE_MAJOR_VERSION  (1)
 #define FUSIONDALE_MINOR_VERSION  (7)
-#define FUSIONDALE_MICRO_VERSION  (6)
+#define FUSIONDALE_MICRO_VERSION  (7)
 #define FUSIONDALE_BINARY_AGE     (0)
 #define FUSIONDALE_INTERFACE_AGE  (0)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/lib/fusionsound/fusionsound_version.h 
new/DirectFB-1.7.7/lib/fusionsound/fusionsound_version.h
--- old/DirectFB-1.7.6/lib/fusionsound/fusionsound_version.h    2014-08-14 
09:22:24.000000000 +0200
+++ new/DirectFB-1.7.7/lib/fusionsound/fusionsound_version.h    2015-02-11 
15:44:47.000000000 +0100
@@ -30,7 +30,7 @@
 
 #define FUSIONSOUND_MAJOR_VERSION  (1)
 #define FUSIONSOUND_MINOR_VERSION  (7)
-#define FUSIONSOUND_MICRO_VERSION  (6)
+#define FUSIONSOUND_MICRO_VERSION  (7)
 #define FUSIONSOUND_BINARY_AGE     (0)
 #define FUSIONSOUND_INTERFACE_AGE  (0)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/lib/sawman/sawman_strings.h 
new/DirectFB-1.7.7/lib/sawman/sawman_strings.h
--- old/DirectFB-1.7.6/lib/sawman/sawman_strings.h      2014-08-14 
09:23:02.000000000 +0200
+++ new/DirectFB-1.7.7/lib/sawman/sawman_strings.h      2015-02-11 
15:44:59.000000000 +0100
@@ -12,7 +12,7 @@
      { SWMPF_MASTER, "MASTER" }, \
      { SWMPF_MANAGER, "MANAGER" }, \
      { SWMPF_EXITING, "EXITING" }, \
-     { SWMPF_NONE, "NONE" } \
+     { (SaWManProcessFlags) SWMPF_NONE, "NONE" } \
 };
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/src/core/CoreGraphicsStateClient.cpp 
new/DirectFB-1.7.7/src/core/CoreGraphicsStateClient.cpp
--- old/DirectFB-1.7.6/src/core/CoreGraphicsStateClient.cpp     2014-08-14 
09:04:51.000000000 +0200
+++ new/DirectFB-1.7.7/src/core/CoreGraphicsStateClient.cpp     2015-02-02 
07:29:24.000000000 +0100
@@ -273,12 +273,14 @@
           client( client ),
           last_cookie(0)
      {
-          dfb_graphics_state_attach( client->gfx_state, 
CoreGraphicsStateClient_Reaction, this, &gfx_reaction );
+          if (client->gfx_state)
+               dfb_graphics_state_attach( client->gfx_state, 
CoreGraphicsStateClient_Reaction, this, &gfx_reaction );
      }
 
      virtual ~CoreGraphicsStateClientPrivate()
      {
-          dfb_graphics_state_detach( client->gfx_state, &gfx_reaction );
+          if (client->gfx_state)
+               dfb_graphics_state_detach( client->gfx_state, &gfx_reaction );
      }
 
      void handleDone( u32 cookie )
@@ -328,6 +330,22 @@
 }
 
 
+static DFBResult
+CoreGraphicsStateClient_init_state( CoreGraphicsStateClient *client )
+{
+     DFBResult ret;
+
+     if (!client->gfx_state) {
+          ret = ::CoreDFB_CreateState( client->core, &client->gfx_state );
+          if (ret)
+               return ret;
+
+          D_DEBUG_AT( Core_GraphicsStateClient, "  -> gfxstate id 0x%x\n", 
client->gfx_state->object.ref.multi.id );
+     }
+
+     return DFB_OK;
+}
+
 DFBResult
 CoreGraphicsStateClient_Init( CoreGraphicsStateClient *client,
                               CardState               *state )
@@ -347,19 +365,21 @@
      client->requestor = NULL;
      client->throttle  = NULL;
 
-     ret = CoreDFB_CreateState( state->core, &client->gfx_state );
-     if (ret)
-          return ret;
-
-     D_DEBUG_AT( Core_GraphicsStateClient, "  -> gfxstate id 0x%x\n", 
client->gfx_state->object.ref.multi.id );
-
      if (dfb_config->task_manager) {
           if (dfb_config->call_nodirect) {
                if (direct_thread_get_tid( direct_thread_self() ) == 
fusion_dispatcher_tid(state->core->world)) {
+                    ret = CoreGraphicsStateClient_init_state( client );
+                    if (ret)
+                         return ret;
+
                     client->renderer = new DirectFB::Renderer( client->state, 
client->gfx_state );
                }
           }
           else if (!fusion_config->secure_fusion || dfb_core_is_master( 
client->core )) {
+               ret = CoreGraphicsStateClient_init_state( client );
+               if (ret)
+                    return ret;
+
                client->renderer = new DirectFB::Renderer( client->state, 
client->gfx_state );
                client->throttle = new ThrottleBlocking( *client->renderer );
                client->renderer->SetThrottle( client->throttle );
@@ -370,6 +390,10 @@
          !(!dfb_config->call_nodirect &&
            (dfb_core_is_master( client->core ) || 
!fusion_config->secure_fusion)))
      {
+          ret = CoreGraphicsStateClient_init_state( client );
+          if (ret)
+               return ret;
+
           client->requestor = new DirectFB::IGraphicsState_Requestor( 
core_dfb, client->gfx_state );
      }
 
@@ -388,7 +412,7 @@
 void
 CoreGraphicsStateClient_Deinit( CoreGraphicsStateClient *client )
 {
-     D_DEBUG_AT( Core_GraphicsStateClient, "%s( client %p, gfxstate id 0x%x 
)\n", __FUNCTION__, client, client->gfx_state->object.ref.multi.id );
+     D_DEBUG_AT( Core_GraphicsStateClient, "%s( client %p, gfxstate id 0x%x 
)\n", __FUNCTION__, client, client->gfx_state ? 
client->gfx_state->object.ref.multi.id : 0 );
 
      D_MAGIC_ASSERT( client, CoreGraphicsStateClient );
 
@@ -412,7 +436,8 @@
 
      delete (CoreGraphicsStateClientPrivate *) client->priv;
 
-     dfb_graphics_state_unref( client->gfx_state );
+     if (client->gfx_state)
+          dfb_graphics_state_unref( client->gfx_state );
 
      client_list.RemoveClient( client );
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/src/core/CoreSurface_real.cpp 
new/DirectFB-1.7.7/src/core/CoreSurface_real.cpp
--- old/DirectFB-1.7.6/src/core/CoreSurface_real.cpp    2014-08-14 
09:04:51.000000000 +0200
+++ new/DirectFB-1.7.7/src/core/CoreSurface_real.cpp    2015-02-01 
20:36:12.000000000 +0100
@@ -161,14 +161,8 @@
                    CoreSurfaceAccessorID   accessor,
                    CoreSurfaceAccessFlags  access )
 {
-     int locks;
-
-     locks = dfb_surface_allocation_locks( allocation );
-
      /*
       * Manage access interlocks.
-      *
-      * SOON FIXME: Clearing flags only when not locked yet. Otherwise nested 
GPU/CPU locks are a problem.
       */
      /* Software read/write access... */
      if (accessor != CSAID_GPU) {
@@ -180,13 +174,11 @@
                /* Software read access after hardware write requires flush of 
the (bus) read cache. */
                dfb_gfxcard_flush_read_cache();
 
-               if (!locks) {
-                    /* ...clear hardware write access. */
-                    allocation->accessed[CSAID_GPU] = 
(CoreSurfaceAccessFlags)(allocation->accessed[CSAID_GPU] & ~CSAF_WRITE);
+               /* ...clear hardware write access. */
+               allocation->accessed[CSAID_GPU] = 
(CoreSurfaceAccessFlags)(allocation->accessed[CSAID_GPU] & ~CSAF_WRITE);
 
-                    /* ...clear hardware read access (to avoid syncing twice). 
*/
-                    allocation->accessed[CSAID_GPU] = 
(CoreSurfaceAccessFlags)(allocation->accessed[CSAID_GPU] & ~CSAF_READ);
-               }
+               /* ...clear hardware read access (to avoid syncing twice). */
+               allocation->accessed[CSAID_GPU] = 
(CoreSurfaceAccessFlags)(allocation->accessed[CSAID_GPU] & ~CSAF_READ);
           }
 
           /* Software write access... */
@@ -197,8 +189,7 @@
                     dfb_gfxcard_wait_serial( &allocation->gfx_serial );
 
                     /* ...clear hardware read access. */
-                    if (!locks)
-                         allocation->accessed[CSAID_GPU] = 
(CoreSurfaceAccessFlags)(allocation->accessed[CSAID_GPU] & ~CSAF_READ);
+                    allocation->accessed[CSAID_GPU] = 
(CoreSurfaceAccessFlags)(allocation->accessed[CSAID_GPU] & ~CSAF_READ);
                }
           }
      }
@@ -218,8 +209,7 @@
                dfb_gfxcard_flush_texture_cache();
 
                /* ...clear software read and write access. */
-               if (!locks)
-                    allocation->accessed[CSAID_CPU] = 
(CoreSurfaceAccessFlags)(allocation->accessed[CSAID_CPU] & ~(CSAF_READ | 
CSAF_WRITE));
+               allocation->accessed[CSAID_CPU] = 
(CoreSurfaceAccessFlags)(allocation->accessed[CSAID_CPU] & ~(CSAF_READ | 
CSAF_WRITE));
           }
      }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/src/core/core_parts.c 
new/DirectFB-1.7.7/src/core/core_parts.c
--- old/DirectFB-1.7.6/src/core/core_parts.c    2013-12-19 01:16:24.000000000 
+0100
+++ new/DirectFB-1.7.7/src/core/core_parts.c    2015-02-09 18:16:46.000000000 
+0100
@@ -73,6 +73,9 @@
      if (core_part->size_shared)
           shared = SHCALLOC( pool, 1, core_part->size_shared );
 
+     core_part->data_local  = local;
+     core_part->data_shared = shared;
+
      ret = core_part->Initialize( core, local, shared );
      if (ret) {
           D_ERROR( "DirectFB/Core: Could not initialize '%s' core!\n"
@@ -85,14 +88,15 @@
           if (local)
                D_FREE( local );
 
+          core_part->data_local  = NULL;
+          core_part->data_shared = NULL;
+
           return ret;
      }
 
      if (shared)
           core_arena_add_shared_field( core, core_part->name, shared );
 
-     core_part->data_local  = local;
-     core_part->data_shared = shared;
      core_part->initialized = true;
 
      return DFB_OK;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/src/core/core_strings.h 
new/DirectFB-1.7.7/src/core/core_strings.h
--- old/DirectFB-1.7.6/src/core/core_strings.h  2014-08-14 09:23:01.000000000 
+0200
+++ new/DirectFB-1.7.7/src/core/core_strings.h  2015-02-11 15:44:58.000000000 
+0100
@@ -17,7 +17,7 @@
      { CSTF_INTERNAL, "INTERNAL" }, \
      { CSTF_EXTERNAL, "EXTERNAL" }, \
      { CSTF_PREALLOCATED, "PREALLOCATED" }, \
-     { CSTF_NONE, "NONE" } \
+     { (CoreSurfaceTypeFlags) CSTF_NONE, "NONE" } \
 };
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/src/core/layer_context.c 
new/DirectFB-1.7.7/src/core/layer_context.c
--- old/DirectFB-1.7.6/src/core/layer_context.c 2014-08-14 09:04:51.000000000 
+0200
+++ new/DirectFB-1.7.7/src/core/layer_context.c 2015-02-01 20:36:12.000000000 
+0100
@@ -1851,7 +1851,8 @@
           /* Add available surface capabilities. */
           caps |= config->surface_caps & (DSCAPS_INTERLACED |
                                           DSCAPS_SEPARATED  |
-                                          DSCAPS_PREMULTIPLIED);
+                                          DSCAPS_PREMULTIPLIED |
+                                          DSCAPS_GL);
 
           scon.flags          = CSCONF_SIZE | CSCONF_FORMAT | 
CSCONF_COLORSPACE | CSCONF_CAPS;
           scon.size.w         = config->width;
@@ -1929,7 +1930,7 @@
      sconfig.flags = CSCONF_SIZE | CSCONF_FORMAT | CSCONF_COLORSPACE | 
CSCONF_CAPS;
 
      sconfig.caps = surface->config.caps & ~(DSCAPS_FLIPPING  | 
DSCAPS_INTERLACED |
-                                             DSCAPS_SEPARATED | 
DSCAPS_PREMULTIPLIED | 
+                                             DSCAPS_SEPARATED | 
DSCAPS_PREMULTIPLIED |
                                              DSCAPS_ROTATED | DSCAPS_STEREO);
 
      switch (config->buffermode) {
@@ -1956,7 +1957,8 @@
      /* Add available surface capabilities. */
      sconfig.caps |= config->surface_caps & (DSCAPS_INTERLACED |
                                              DSCAPS_SEPARATED  |
-                                             DSCAPS_PREMULTIPLIED); 
+                                             DSCAPS_PREMULTIPLIED |
+                                             DSCAPS_GL);
 
      if (config->options & DLOP_DEINTERLACING)
           sconfig.caps |= DSCAPS_INTERLACED;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/src/core/surface_pool.c 
new/DirectFB-1.7.7/src/core/surface_pool.c
--- old/DirectFB-1.7.6/src/core/surface_pool.c  2014-08-14 09:04:51.000000000 
+0200
+++ new/DirectFB-1.7.7/src/core/surface_pool.c  2015-02-09 18:16:46.000000000 
+0100
@@ -1184,7 +1184,9 @@
      D_ASSERT( callback != NULL );
 
      fusion_vector_foreach (allocation, i, pool->allocs) {
-          if (callback( allocation, ctx ) == DFENUM_CANCEL)
+          D_MAGIC_ASSERT( allocation, CoreSurfaceAllocation );
+
+          if (allocation->data && callback( allocation, ctx ) == DFENUM_CANCEL)
                break;
      }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/src/directfb.c new/DirectFB-1.7.7/src/directfb.c
--- old/DirectFB-1.7.6/src/directfb.c   2014-07-15 08:54:58.000000000 +0200
+++ new/DirectFB-1.7.7/src/directfb.c   2015-02-01 20:36:12.000000000 +0100
@@ -1,6 +1,6 @@
 /*
-   (c) Copyright 2012-2013  DirectFB integrated media GmbH
-   (c) Copyright 2001-2013  The world wide DirectFB Open Source Community 
(directfb.org)
+   (c) Copyright 2012-2015  DirectFB integrated media GmbH
+   (c) Copyright 2001-2015  The world wide DirectFB Open Source Community 
(directfb.org)
    (c) Copyright 2000-2004  Convergence (integrated media) GmbH
 
    All rights reserved.
@@ -203,9 +203,9 @@
      if ( !(direct_config->quiet & DMT_BANNER) && dfb_config->banner) {
           direct_log_printf( NULL,
                              "\n"
-                             "   ~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB " 
DIRECTFB_VERSION DIRECTFB_VERSION_VENDOR " |~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
-                             "        (c) 2012-2013  DirectFB integrated media 
GmbH\n"
-                             "        (c) 2001-2013  The world wide DirectFB 
Open Source Community\n"
+                             "   ~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB " 
DIRECTFB_VERSION DIRECTFB_VERSION_VENDOR " |~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
+                             "        (c) 2012-2015  DirectFB integrated media 
GmbH\n"
+                             "        (c) 2001-2015  The world wide DirectFB 
Open Source Community\n"
                              "        (c) 2000-2004  Convergence (integrated 
media) GmbH\n"
                              "      
----------------------------------------------------------------\n"
                              "\n" );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/src/display/idirectfbsurface.c 
new/DirectFB-1.7.7/src/display/idirectfbsurface.c
--- old/DirectFB-1.7.6/src/display/idirectfbsurface.c   2014-08-14 
09:04:51.000000000 +0200
+++ new/DirectFB-1.7.7/src/display/idirectfbsurface.c   2015-02-01 
20:45:25.000000000 +0100
@@ -155,6 +155,8 @@
      D_ASSERT( data != NULL );
      D_ASSERT( data->children_data == NULL );
 
+     D_DEBUG_AT( Surface, "  -> flushing graphics state...\n" );
+
      if (data->memory_permissions_count) {
           // FIXME: currently just enough for df_dok
           CoreGraphicsStateClient_FlushCurrent( 1 );
@@ -166,8 +168,11 @@
      else
           CoreGraphicsStateClient_FlushCurrent( 0 );
 
-     if (data->surface_client)
+     if (data->surface_client) {
+          D_DEBUG_AT( Surface, "  -> releasing surface client...\n" );
+
           dfb_surface_client_unref( data->surface_client );
+     }
 
      parent = data->parent;
      if (parent) {
@@ -199,12 +204,20 @@
 
      dfb_state_destroy( &data->state );
 
-     if (data->font)
+     if (data->font) {
+          D_DEBUG_AT( Surface, "  -> releasing font...\n" );
+
           data->font->Release( data->font );
+     }
 
      if (data->surface) {
-          if (data->locked)
+          if (data->locked) {
+               D_DEBUG_AT( Surface, "  -> unlocking buffer...\n" );
+
                dfb_surface_unlock_buffer( data->surface, &data->lock );
+          }
+
+          D_DEBUG_AT( Surface, "  -> releasing surface...\n" );
 
           dfb_surface_unref( data->surface );
      }
@@ -218,8 +231,13 @@
 
      DIRECT_DEALLOCATE_INTERFACE( thiz );
 
-     if (parent)
+     if (parent) {
+          D_DEBUG_AT( Surface, "  -> releasing parent...\n" );
+
           parent->Release( parent );
+     }
+
+     D_DEBUG_AT( Surface, "  -> done.\n" );
 }
 
 static DirectResult
@@ -2556,6 +2574,8 @@
                return ret;
           }
 
+          D_ASSERT( num <= bytes );
+
           /* Calculate string width. */
           for (i=0; i<num; i++) {
                unsigned int   current = indices[i];
@@ -3643,6 +3663,8 @@
 
      data->src_eye = DSSE_LEFT;
 
+     D_DEBUG_AT( Surface, "  -> initializing CoreGraphicsStateClient...\n" );
+
      ret = CoreGraphicsStateClient_Init( &data->state_client, &data->state );
      if (ret)
           return ret;    // FIXME: deinit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/src/gfx/generic/generic_blit.c 
new/DirectFB-1.7.7/src/gfx/generic/generic_blit.c
--- old/DirectFB-1.7.6/src/gfx/generic/generic_blit.c   2013-12-19 
01:16:24.000000000 +0100
+++ new/DirectFB-1.7.7/src/gfx/generic/generic_blit.c   2015-02-11 
14:32:14.000000000 +0100
@@ -141,13 +141,17 @@
           gfxs->Astep = gfxs->Bstep = 1;
 
 
-     int mask_x = 0;
-     int mask_y = 0;
+     int mask_x = rect->x;
+     int mask_y = rect->y;
      int mask_h = gfxs->mask_height;
 
-     if ((state->blittingflags & (DSBLIT_SRC_MASK_ALPHA | 
DSBLIT_SRC_MASK_COLOR)) && (state->src_mask_flags & DSMF_STENCIL)) {
-          mask_x = state->src_mask_offset.x;
-          mask_y = state->src_mask_offset.y;
+     if (state->blittingflags & (DSBLIT_SRC_MASK_ALPHA | 
DSBLIT_SRC_MASK_COLOR)) {
+          if (state->src_mask_flags & DSMF_STENCIL) {
+               mask_x = 0;
+               mask_y = 0;
+          }
+          mask_x += state->src_mask_offset.x;
+          mask_y += state->src_mask_offset.y;
      }
 
      if (rotflip_blittingflags == (DSBLIT_FLIP_HORIZONTAL | 
DSBLIT_FLIP_VERTICAL)) { // 180 deg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/src/media/idirectfbfont.c 
new/DirectFB-1.7.7/src/media/idirectfbfont.c
--- old/DirectFB-1.7.6/src/media/idirectfbfont.c        2013-12-19 
01:16:24.000000000 +0100
+++ new/DirectFB-1.7.7/src/media/idirectfbfont.c        2015-02-01 
20:45:08.000000000 +0100
@@ -316,6 +316,8 @@
                return ret;
           }
 
+          D_ASSERT( num <= bytes );
+
           for (i=0; i<num; i++) {
                unsigned int   current = indices[i];
                CoreGlyphData *glyph;
@@ -428,6 +430,8 @@
                return ret;
           }
 
+          D_ASSERT( num <= bytes );
+
           /* Calculate string width. */
           for (i=0; i<num; i++) {
                unsigned int   current = indices[i];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/src/misc/conf.c new/DirectFB-1.7.7/src/misc/conf.c
--- old/DirectFB-1.7.6/src/misc/conf.c  2014-08-14 09:04:51.000000000 +0200
+++ new/DirectFB-1.7.7/src/misc/conf.c  2015-02-01 20:46:09.000000000 +0100
@@ -1255,7 +1255,7 @@
                     return DFB_INVARG;
                }
 
-               if (id < 0 || id > D_ARRAY_SIZE(dfb_config->layers)) {
+               if (id < 0 || id >= D_ARRAY_SIZE(dfb_config->layers)) {
                     D_ERROR("DirectFB/Config '%s': ID %d out of bounds!\n", 
name, id);
                     return DFB_INVARG;
                }
@@ -2455,7 +2455,7 @@
 DFBResult dfb_config_read( const char *filename )
 {
      DFBResult ret = DFB_OK;
-     char line[400];
+     char line[400+1];
      FILE *f;
 
      char *slash = 0;
@@ -2491,7 +2491,7 @@
           }
 
           /* must copy filename for path, due to const'ness */
-          char nwd[strlen(filename)];
+          char nwd[strlen(filename)+1];
           strcpy( nwd, filename );
           nwd[slash-filename] = 0;
           if (chdir( nwd ))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/systems/fbdev/fbdev.c 
new/DirectFB-1.7.7/systems/fbdev/fbdev.c
--- old/DirectFB-1.7.6/systems/fbdev/fbdev.c    2013-12-19 01:16:24.000000000 
+0100
+++ new/DirectFB-1.7.7/systems/fbdev/fbdev.c    2015-02-01 20:42:59.000000000 
+0100
@@ -330,7 +330,7 @@
 static void
 dfb_fbdev_get_pci_info( FBDevShared *shared )
 {
-     char  buf[512];
+     char  buf[512+1];
      int   vendor = -1;
      int   model  = -1;
      FILE *fp;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/systems/x11/primary.c 
new/DirectFB-1.7.7/systems/x11/primary.c
--- old/DirectFB-1.7.6/systems/x11/primary.c    2014-08-14 09:04:51.000000000 
+0200
+++ new/DirectFB-1.7.7/systems/x11/primary.c    2015-02-09 18:16:46.000000000 
+0100
@@ -764,8 +764,8 @@
 update_screen( DFBX11 *x11, const DFBRectangle *clip, CoreSurfaceBufferLock 
*lock, XWindow *xw )
 {
      void                  *dst;
-     u8                    *srces[3];
-     int                    pitches[3];
+     u8                    *srces[3] = { 0 };
+     int                    pitches[3] = { 0 };
      unsigned int           offset = 0;
      XImage                *ximage;
      CoreSurfaceAllocation *allocation;
@@ -874,7 +874,7 @@
 
           dst = xw->virtualscreen + rect.x * xw->bpp + (rect.y + offset) * 
ximage->bytes_per_line;
 
-          dfb_surface_get_data_offsets( allocation->surface, lock->addr, 
lock->pitch, rect.x, rect.y,
+          dfb_surface_get_data_offsets( &allocation->config, lock->addr, 
lock->pitch, rect.x, rect.y,
                                         3, srces, pitches );
 
           switch (xw->depth) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/DirectFB-1.7.6/tools/mknames.sh new/DirectFB-1.7.7/tools/mknames.sh
--- old/DirectFB-1.7.6/tools/mknames.sh 2013-07-17 04:49:59.000000000 +0200
+++ new/DirectFB-1.7.7/tools/mknames.sh 2015-02-09 18:16:46.000000000 +0100
@@ -28,6 +28,6 @@
 egrep "^ +${PREFIX}_[0-9A-Za-z_]+[ ,]" $HEADER | grep -v ${PREFIX}_${NULL} | 
perl -p -e "s/^\\s*(${PREFIX}_)([\\w_]+)[ ,].*/     \\{ \\1\\2, \\\"\\2\\\" 
\\}, \\\\/"
 
 cat << EOF
-     { ${PREFIX}_${NULL}, "${NULL}" } \\
+     { ($ENUM) ${PREFIX}_${NULL}, "${NULL}" } \\
 };
 EOF

++++++ DirectFB-CVE-2014-2977.patch ++++++
Index: proxy/dispatcher/idirectfbsurface_dispatcher.c
===================================================================
--- proxy/dispatcher/idirectfbsurface_dispatcher.c.orig 2014-03-22 
21:05:18.000000000 +0100
+++ proxy/dispatcher/idirectfbsurface_dispatcher.c      2015-03-23 
13:07:30.840507533 +0100
@@ -1729,6 +1729,9 @@
      VOODOO_PARSER_GET_INT( parser, pitch );
      VOODOO_PARSER_END( parser );
 
+     /* CVE-2014-2977 */
+     DFB_RECTANGLE_ASSERT_IF( rect );
+
      if (encoded) {
           switch (encoded) {
                case 2: {
++++++ DirectFB-CVE-2014-2978.patch ++++++
Index: proxy/dispatcher/idirectfbsurface_dispatcher.c
===================================================================
--- proxy/dispatcher/idirectfbsurface_dispatcher.c.orig 2014-03-22 
21:05:18.000000000 +0100
+++ proxy/dispatcher/idirectfbsurface_dispatcher.c      2015-03-23 
15:03:28.650053384 +0100
@@ -1629,6 +1629,11 @@
                     dst[out++] = RLE16_KEY;
                }
                else {
+                    /* CVE-2014-2978 */
+                    if (count > num - out ) {
+                      break;
+                    }
+
                     last = src[n++];
 
                     while (count >= 4) {
@@ -1679,6 +1684,11 @@
                     dst[out++] = RLE32_KEY;
                }
                else {
+                    /* CVE-2014-2978 */
+                    if (count > num - out ) {
+                      break;
+                    }
+
                     last = src[n++];
 
                     while (count >= 4) {

Reply via email to