Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libgdiplus for openSUSE:Factory checked in at 2021-01-18 11:26:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libgdiplus (Old) and /work/SRC/openSUSE:Factory/.libgdiplus.new.28504 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libgdiplus" Mon Jan 18 11:26:03 2021 rev:4 rq:862693 version:6.0.5 Changes: -------- --- /work/SRC/openSUSE:Factory/libgdiplus/libgdiplus.changes 2020-08-23 09:19:12.662619682 +0200 +++ /work/SRC/openSUSE:Factory/.libgdiplus.new.28504/libgdiplus.changes 2021-01-18 11:26:04.748379546 +0100 @@ -1,0 +2,6 @@ +Tue Jan 12 18:42:24 UTC 2021 - Matthias Mail??nder <mailaen...@opensuse.org> + +- Update to version 6.0.5 +- Disable the static library + +------------------------------------------------------------------- Old: ---- libgdiplus-6.0.4.tar.gz New: ---- libgdiplus-6.0.5.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libgdiplus.spec ++++++ --- /var/tmp/diff_new_pack.T1rgIl/_old 2021-01-18 11:26:06.120382720 +0100 +++ /var/tmp/diff_new_pack.T1rgIl/_new 2021-01-18 11:26:06.120382720 +0100 @@ -1,7 +1,7 @@ # # spec file for package libgdiplus # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %define soname 0 Name: libgdiplus -Version: 6.0.4 +Version: 6.0.5 Release: 0 Summary: Open Source Implementation of the GDI+ API License: (LGPL-2.1-or-later OR MPL-1.1) AND MIT @@ -66,12 +66,12 @@ %build autoreconf -fiv -%configure +%configure --disable-static %make_build %install %make_install -rm -rf %{buildroot}%{_libdir}/%{name}.{a,la} +rm %{buildroot}%{_libdir}/%{name}.la #%check #%make_build check ++++++ libgdiplus-6.0.4.tar.gz -> libgdiplus-6.0.5.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libgdiplus-6.0.4/configure new/libgdiplus-6.0.5/configure --- old/libgdiplus-6.0.4/configure 2019-10-03 15:05:49.000000000 +0200 +++ new/libgdiplus-6.0.5/configure 2020-04-17 15:18:44.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libgdiplus 6.0.4. +# Generated by GNU Autoconf 2.69 for libgdiplus 6.0.5. # # Report bugs to <https://github.com/mono/mono/issues/new>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='libgdiplus' PACKAGE_TARNAME='libgdiplus' -PACKAGE_VERSION='6.0.4' -PACKAGE_STRING='libgdiplus 6.0.4' +PACKAGE_VERSION='6.0.5' +PACKAGE_STRING='libgdiplus 6.0.5' PACKAGE_BUGREPORT='https://github.com/mono/mono/issues/new' PACKAGE_URL='' @@ -1384,7 +1384,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libgdiplus 6.0.4 to adapt to many kinds of systems. +\`configure' configures libgdiplus 6.0.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1456,7 +1456,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libgdiplus 6.0.4:";; + short | recursive ) echo "Configuration of libgdiplus 6.0.5:";; esac cat <<\_ACEOF @@ -1607,7 +1607,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libgdiplus configure 6.0.4 +libgdiplus configure 6.0.5 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1976,7 +1976,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libgdiplus $as_me 6.0.4, which was +It was created by libgdiplus $as_me 6.0.5, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2955,7 +2955,7 @@ # Define the identity of the package. PACKAGE='libgdiplus' - VERSION='6.0.4' + VERSION='6.0.5' cat >>confdefs.h <<_ACEOF @@ -15036,7 +15036,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libgdiplus $as_me 6.0.4, which was +This file was extended by libgdiplus $as_me 6.0.5, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15102,7 +15102,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libgdiplus config.status 6.0.4 +libgdiplus config.status 6.0.5 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libgdiplus-6.0.4/configure.ac new/libgdiplus-6.0.5/configure.ac --- old/libgdiplus-6.0.4/configure.ac 2019-10-03 15:05:42.000000000 +0200 +++ new/libgdiplus-6.0.5/configure.ac 2020-04-17 15:18:37.000000000 +0200 @@ -1,4 +1,4 @@ -AC_INIT(libgdiplus, [6.0.4], +AC_INIT(libgdiplus, [6.0.5], [https://github.com/mono/mono/issues/new]) AC_CONFIG_SRCDIR([README.md]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libgdiplus-6.0.4/src/bitmap.c new/libgdiplus-6.0.5/src/bitmap.c --- old/libgdiplus-6.0.4/src/bitmap.c 2019-10-03 15:05:42.000000000 +0200 +++ new/libgdiplus-6.0.5/src/bitmap.c 2020-04-17 15:18:37.000000000 +0200 @@ -590,6 +590,7 @@ } /* Invalidate the cached surface */ + gdip_bitmap_flush_surface (bitmap); gdip_bitmap_invalidate_surface (bitmap); if ((bitmap->num_of_frames == 0) || (bitmap->frames == NULL)) { @@ -726,6 +727,8 @@ if (!bitmap) return Ok; + gdip_bitmap_invalidate_surface (bitmap); + if (bitmap->frames) { int frame; for (frame = 0; frame < bitmap->num_of_frames; frame++) { @@ -735,11 +738,6 @@ bitmap->frames = NULL; } - if (bitmap->surface) { - cairo_surface_destroy (bitmap->surface); - bitmap->surface = NULL; - } - GdipFree (bitmap); return Ok; } @@ -777,6 +775,7 @@ GdipDisposeImage (image); return status; default: + GdipDisposeImage (image); return GenericError; } } @@ -2250,7 +2249,6 @@ { if (bitmap->surface != NULL) { BYTE *surface_scan0 = cairo_image_surface_get_data (bitmap->surface); - gdip_bitmap_flush_surface (bitmap); cairo_surface_destroy (bitmap->surface); bitmap->surface = NULL; if (surface_scan0 != bitmap->active_bitmap->scan0) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libgdiplus-6.0.4/src/gifcodec.c new/libgdiplus-6.0.5/src/gifcodec.c --- old/libgdiplus-6.0.4/src/gifcodec.c 2019-09-25 16:27:41.000000000 +0200 +++ new/libgdiplus-6.0.5/src/gifcodec.c 2020-04-17 15:18:26.000000000 +0200 @@ -495,6 +495,8 @@ ep->Bytes = (char *)GdipAlloc(ep->ByteCount); #endif if (ep->Bytes == NULL) { + GdipFree (New->ExtensionBlocks); + New->ExtensionBlocks = NULL; return (GIF_ERROR); } @@ -546,29 +548,29 @@ do { if (DGifGetRecordType(GifFile, &RecordType) == GIF_ERROR) { - return (GIF_ERROR); + goto error; } switch (RecordType) { case IMAGE_DESC_RECORD_TYPE: { if (DGifGetImageDesc(GifFile) == GIF_ERROR) { - return (GIF_ERROR); + goto error; } sp = &GifFile->SavedImages[GifFile->ImageCount - 1]; /* Allocate memory for the image */ if (sp->ImageDesc.Width < 0 && sp->ImageDesc.Height < 0 && sp->ImageDesc.Width > (INT_MAX / sp->ImageDesc.Height)) { - return GIF_ERROR; + goto error; } ImageSize = sp->ImageDesc.Width * sp->ImageDesc.Height; if (ImageSize == 0 || ImageSize > (SIZE_MAX / sizeof(GifPixelType))) { - return GIF_ERROR; + goto error; } sp->RasterBits = (BYTE *) GdipAlloc (ImageSize * sizeof(GifPixelType)); if (sp->RasterBits == NULL) { - return GIF_ERROR; + goto error; } if (sp->ImageDesc.Interlace) { @@ -583,12 +585,12 @@ for (i = 0; i < 4; i++) { for (j = InterlacedOffset[i]; j < sp->ImageDesc.Height; j += InterlacedJumps[i]) { if (DGifGetLine(GifFile, sp->RasterBits + j * sp->ImageDesc.Width, sp->ImageDesc.Width) == GIF_ERROR) - return GIF_ERROR; + goto error; } } } else if (DGifGetLine(GifFile, sp->RasterBits, ImageSize) == GIF_ERROR) { - return (GIF_ERROR); + goto error; } if (temp_save.ExtensionBlocks) { @@ -609,16 +611,16 @@ while (ExtData != NULL) { /* Create an extension block with our data */ if (AddExtensionBlockMono(&temp_save, Function, ExtData[0], &ExtData[1]) == GIF_ERROR) { - return (GIF_ERROR); + goto error; } if (DGifGetExtensionNext(GifFile, &ExtData) == GIF_ERROR) { - return (GIF_ERROR); + goto error; } /* Graphics control blocks cannot contain any sub blocks. */ if (Function == 0xF9 && ExtData) { - return GIF_ERROR; + goto error; } } break; @@ -636,16 +638,21 @@ /* The gif file must contain at least one image block. */ if (GifFile->ImageCount == 0) - return GIF_ERROR; + goto error; /* In case the Gif has an extension block without an associated * image we return it in TrailingExtensions, if provided */ if ((TrailingExtensions != NULL) && (temp_save.ExtensionBlocks != NULL)) { *TrailingExtensions = temp_save; + } else { + FreeExtensionMono (&temp_save); } - return (GIF_OK); + +error: + FreeExtensionMono (&temp_save); + return GIF_ERROR; } static GpStatus diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libgdiplus-6.0.4/src/graphics-path.c new/libgdiplus-6.0.5/src/graphics-path.c --- old/libgdiplus-6.0.4/src/graphics-path.c 2019-10-02 19:08:35.000000000 +0200 +++ new/libgdiplus-6.0.5/src/graphics-path.c 2020-04-17 15:18:37.000000000 +0200 @@ -943,8 +943,10 @@ if (!tangents) return OutOfMemory; - if (!gdip_path_ensure_size (path, path->count + (3 * (count - 1)) + 1)) + if (!gdip_path_ensure_size(path, path->count + (3 * (count - 1)) + 1)) { + GdipFree(tangents); return OutOfMemory; + } append_curve (path, points, tangents, 0, count - 1, CURVE_OPEN); @@ -973,9 +975,11 @@ if (!tangents) return OutOfMemory; - if (!gdip_path_ensure_size (path, path->count + (3 * numberOfSegments) + 1)) + if (!gdip_path_ensure_size (path, path->count + (3 * numberOfSegments) + 1)) { + GdipFree(tangents); return OutOfMemory; - + } + append_curve (path, points, tangents, offset, numberOfSegments, CURVE_OPEN); GdipFree (tangents); @@ -1001,8 +1005,10 @@ if (!tangents) return OutOfMemory; - if (!gdip_path_ensure_size (path, path->count + (3 * count) + 1)) + if (!gdip_path_ensure_size (path, path->count + (3 * count) + 1)) { + GdipFree(tangents); return OutOfMemory; + } append_curve (path, points, tangents, 0, count - 1, CURVE_CLOSE); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libgdiplus-6.0.4/src/graphics.c new/libgdiplus-6.0.5/src/graphics.c --- old/libgdiplus-6.0.4/src/graphics.c 2019-10-02 19:08:35.000000000 +0200 +++ new/libgdiplus-6.0.5/src/graphics.c 2020-04-17 15:18:37.000000000 +0200 @@ -533,7 +533,7 @@ graphics->pixel_mode = pos_state->pixel_mode; graphics->text_contrast = pos_state->text_contrast; - graphics->saved_status_pos = state; + graphics->saved_status_pos = state - 1; /* re-adjust clipping (region and matrix) */ gdip_cairo_set_matrix (graphics, graphics->copy_of_ctm); @@ -2002,7 +2002,10 @@ return status; } - return GdipSetClipRegion (graphics, region, combineMode); + status = GdipSetClipRegion (graphics, region, combineMode); + GdipDeleteRegion (region); + + return status; } GpStatus WINGDIPAPI diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libgdiplus-6.0.4/src/image.c new/libgdiplus-6.0.5/src/image.c --- old/libgdiplus-6.0.4/src/image.c 2019-10-02 19:08:38.000000000 +0200 +++ new/libgdiplus-6.0.5/src/image.c 2020-04-17 15:18:37.000000000 +0200 @@ -530,8 +530,10 @@ } /* Create a surface for this bitmap if one doesn't exist */ - if (gdip_bitmap_ensure_surface (image) == NULL) + if (gdip_bitmap_ensure_surface (image) == NULL) { + GdipDeleteMatrix(matrix); return OutOfMemory; + } pattern = cairo_pattern_create_for_surface (image->surface); cairo_pattern_set_filter (pattern, gdip_get_cairo_filter (graphics->interpolation)); @@ -699,8 +701,10 @@ /* We're ok just cloning the bitmap, we don't need the image data * and we destroy it before we leave this function */ status = gdip_bitmap_clone (image, &imgflipX); - if (status != Ok) + if (status != Ok) { + gdip_bitmap_dispose(imgflipX); return status; + } status = gdip_flip_x (imgflipX); if (status != Ok) { @@ -713,11 +717,15 @@ if (flipYOn) { status = gdip_bitmap_clone (image, &imgflipY); - if (status != Ok) + if (status != Ok) { + gdip_bitmap_dispose(imgflipX); + gdip_bitmap_dispose(imgflipY); return status; + } status = gdip_flip_y (imgflipY); if (status != Ok) { + gdip_bitmap_dispose (imgflipX); gdip_bitmap_dispose (imgflipY); return status; } @@ -727,19 +735,27 @@ if (flipXOn && flipYOn) { status = gdip_bitmap_clone (image, &imgflipXY); - if (status != Ok) + if (status != Ok) { + gdip_bitmap_dispose(imgflipX); + gdip_bitmap_dispose(imgflipY); + gdip_bitmap_dispose(imgflipXY); return status; + } status = gdip_flip_x (imgflipXY); if (status != Ok) { - gdip_bitmap_dispose (imgflipXY); + gdip_bitmap_dispose(imgflipX); + gdip_bitmap_dispose(imgflipY); + gdip_bitmap_dispose(imgflipXY); return status; } status = gdip_flip_y (imgflipXY); if (status != Ok) { - gdip_bitmap_dispose (imgflipXY); - return Ok; + gdip_bitmap_dispose(imgflipX); + gdip_bitmap_dispose(imgflipY); + gdip_bitmap_dispose(imgflipXY); + return status; } gdip_bitmap_ensure_surface (imgflipXY); @@ -843,10 +859,11 @@ } if (allocated) { + gdip_bitmap_invalidate_surface (image); image->active_bitmap->scan0 = org; image->active_bitmap->pixel_format = org_format; image->surface = org_surface; - GdipFree (dest); + // NOTE: dest is freed by gdip_bitmap_invalidate_surface above } return Ok; @@ -940,8 +957,10 @@ if (!pointsF) return OutOfMemory; - return GdipDrawImagePointsRect (graphics, image, pointsF, count, srcx, srcy, srcwidth, srcheight, + GpStatus status = GdipDrawImagePointsRect(graphics, image, pointsF, count, srcx, srcy, srcwidth, srcheight, srcUnit, imageAttributes, callback, callbackData); + GdipFree(pointsF); + return status; } /* @@ -1073,8 +1092,10 @@ encoders = GdipAlloc (size); status = GdipGetImageEncoders (numEncoders, size, encoders); - if (status != Ok) + if (status != Ok) { + GdipFree(encoders); return INVALID; + } for (cnt = 0, encoder = encoders; cnt < numEncoders; cnt++, encoder++) { if (memcmp (&encoder->Clsid, encoderCLSID, sizeof (GUID)) == 0) { @@ -1596,6 +1617,7 @@ image->active_bitmap->scan0 = rotated; image->active_bitmap->reserved |= GBD_OWN_SCAN0; + gdip_bitmap_flush_surface (image); gdip_bitmap_invalidate_surface (image); return Ok; @@ -1774,6 +1796,7 @@ /* It shouldn't be possible for an indexed image to have one, * but if it does, it needs to be killed. */ + gdip_bitmap_flush_surface (image); gdip_bitmap_invalidate_surface (image); return Ok; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libgdiplus-6.0.4/src/metafile.c new/libgdiplus-6.0.5/src/metafile.c --- old/libgdiplus-6.0.4/src/metafile.c 2019-09-25 16:27:41.000000000 +0200 +++ new/libgdiplus-6.0.5/src/metafile.c 2020-04-17 15:18:26.000000000 +0200 @@ -945,6 +945,8 @@ } mf->base = *base; + GdipFree(base); + base = NULL; memcpy (&mf->metafile_header, &metafile->metafile_header, sizeof (MetafileHeader)); if (metafile->length > 0) { @@ -1719,7 +1721,8 @@ if (wmfPlaceableFileHeader) { status = GdipGetMetafileHeaderFromWmf (hWmf, wmfPlaceableFileHeader, &(*metafile)->metafile_header); if (status != Ok) { - GdipFree (*metafile); + gdip_metafile_dispose (*metafile); + *metafile = NULL; return status; } } @@ -1730,7 +1733,7 @@ case MetafileTypeEmfPlusOnly: case MetafileTypeEmfPlusDual: default: - GdipFree (*metafile); + gdip_metafile_dispose (*metafile); *metafile = NULL; return GenericError; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libgdiplus-6.0.4/src/pngcodec.c new/libgdiplus-6.0.5/src/pngcodec.c --- old/libgdiplus-6.0.4/src/pngcodec.c 2019-10-02 19:08:38.000000000 +0200 +++ new/libgdiplus-6.0.5/src/pngcodec.c 2020-04-17 15:18:37.000000000 +0200 @@ -412,6 +412,7 @@ result = gdip_bitmap_new_with_frame (&gdip_image_frameDimension_page_guid, TRUE); if (!result) { status = OutOfMemory; + GdipFree(palette); goto error; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libgdiplus-6.0.4/src/region.c new/libgdiplus-6.0.5/src/region.c --- old/libgdiplus-6.0.4/src/region.c 2019-10-02 19:08:35.000000000 +0200 +++ new/libgdiplus-6.0.5/src/region.c 2020-04-17 15:18:37.000000000 +0200 @@ -865,7 +865,9 @@ if (alltrgrects) { GdipFree (alltrgrects); } - + if (allsrcrects) { + GdipFree(allsrcrects); + } return status; } } @@ -2105,7 +2107,7 @@ GdipGetRegionScansI (GpRegion *region, GpRect *rects, INT *count, GpMatrix *matrix) { GpStatus status; - GpRectF *rectsF; + GpRectF *rectsF = NULL; UINT scansCount; if (!region || !count || !matrix) @@ -2124,14 +2126,20 @@ } status = GdipGetRegionScans (region, rectsF, count, matrix); - if (status != Ok) + if (status != Ok) { + if (rectsF) + free(rectsF); return status; + } if (rects) { for (int i = 0; i < scansCount; i++) gdip_Rect_from_RectF (&rectsF[i], &rects[i]); } + if (rectsF) + free(rectsF); + return Ok; }