commit DirectFB for openSUSE:Factory
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 - pgajdos@suse.com + +- 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 - pgajdos@suse.com + +- 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, mvyskocil@suse.com 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 <dok@directfb.org> +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 <dok@directfb.org> +Date: Fri Oct 31 13:53:07 2014 +0100 + + configure: Evaluate module directory to show final directory + +commit 6fece410a5b946f1c0c017a66ea5884c7747dbcf +Author: Denis Oliver Kropp <dok@directfb.org> +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 <dok@directfb.org> +Date: Sat Sep 20 15:35:10 2014 +0200 + + mknames: add typecast to avoid errors with C++ + +commit 4d422fbdf6add491f20164b8b33a0b7b9064b06c +Author: Denis Oliver Kropp <dok@directfb.org> +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 <dok@directfb.org> +Date: Sun Feb 1 10:18:12 2015 +0100 + + ignore + +commit 618c81557d92e75351303c95aa086dd9657d7170 +Author: Denis Oliver Kropp <dok@directfb.org> +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 <dok@directfb.org> +Date: Sun Feb 1 10:04:27 2015 +0100 + + Core: Cascaded interlock in favor of optimization. + +commit 6f09d498b57d3559ba22e0d043664303a0ee1c37 +Author: Denis Oliver Kropp <dok@directfb.org> +Date: Sun Feb 1 10:01:24 2015 +0100 + + libfusion: deallocate call tls properly + +commit 36566929135390deb249c89ed657c057942a58fc +Author: Denis Oliver Kropp <dok@directfb.org> +Date: Sun Feb 1 09:58:42 2015 +0100 + + 1.7.7 + +commit 2f4f78cc43fa7e6ee8411c5f284aa533ad003729 +Author: Denis Oliver Kropp <dok@directfb.org> +Date: Sun Feb 1 09:56:19 2015 +0100 + + 2015 + +commit 09d8d058ced264a3a7fd4041bbc4c95893d42691 +Author: Denis Oliver Kropp <dok@directfb.org> +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 <dok@directfb.org> +Date: Thu Aug 14 09:21:39 2014 +0200 + + directfb 1.7.6 + commit 4b4ca723b8dc7d83b8cd8c709f4b0d5e7a96e06b Author: Denis Oliver Kropp <dok@directfb.org> 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) {
participants (1)
-
root@hilbert.suse.de