SHA256
1
0
forked from pool/libredwg

Accepting request 1098839 from devel:libraries:c_c++

- Update to tag 0.12.5.5907
  * Addressed CVE-2022-33025 [boo#1200898],
    CVE-2023-36271 [boo#1212709], CVE-2023-36272 [boo#1212707],
    CVE-2023-36273 [boo#1212706], CVE-2023-36274 [boo#1212705]

OBS-URL: https://build.opensuse.org/request/show/1098839
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libredwg?expand=0&rev=16
This commit is contained in:
Ana Guerrero 2023-07-17 17:23:27 +00:00 committed by Git OBS Bridge
commit ed40ceb2ed
8 changed files with 219 additions and 346 deletions

View File

@ -1,81 +0,0 @@
From bb97cadde05277f089b730a7aff4cffa4c9f8afa Mon Sep 17 00:00:00 2001
From: Reini Urban <rurban@cpan.org>
Date: Mon, 15 Aug 2022 10:23:08 +0200
Subject: [PATCH] bits: change bit_copy_chain
copy only the rest of the 2nd dat, not the whole.
and don't reset it to 0, keep its position.
---
src/bits.c | 14 +++++++-------
src/encode.c | 5 ++++-
2 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/src/bits.c b/src/bits.c
index a7a8ca98..4c9ca878 100644
--- a/src/bits.c
+++ b/src/bits.c
@@ -3353,25 +3353,25 @@ bool does_cross_unicode_datversion (Bit_Chain *restrict dat)
return false;
}
-/* Copy the whole content of tmp_data to dat, and reset tmp_dat.
+/* Copy the rest content of tmp_data to dat.
WARN: This might change dat->chain */
void bit_copy_chain (Bit_Chain *restrict dat, Bit_Chain *restrict tmp_dat)
{
unsigned long i;
- unsigned long dat_bits = bit_position (tmp_dat);
- unsigned long size = tmp_dat->byte;
+ unsigned long size = tmp_dat->size - tmp_dat->byte;
while (dat->byte + size > dat->size)
bit_chain_alloc (dat);
// check if dat is byte aligned, tmp_dat always is. we can use memcpy then.
- if (!dat->bit)
+ if (!dat->bit && !tmp_dat->bit)
{
assert(!tmp_dat->bit);
- memcpy (&dat->chain[dat->byte], &tmp_dat->chain[0], size);
+ memcpy (&dat->chain[dat->byte], &tmp_dat->chain[tmp_dat->byte], size);
dat->byte += size;
}
else
{
- bit_set_position (tmp_dat, 0);
+ unsigned long dat_bits = bit_position (tmp_dat);
+ //bit_set_position (tmp_dat, 0);
for (i = 0; i < size; i++)
{
bit_write_RC (dat, bit_read_RC (tmp_dat));
@@ -3380,6 +3380,6 @@ void bit_copy_chain (Bit_Chain *restrict dat, Bit_Chain *restrict tmp_dat)
{
bit_write_B (dat, bit_read_B (tmp_dat));
}
+ bit_set_position (tmp_dat, dat_bits);
}
- bit_set_position (tmp_dat, 0);
}
diff --git a/src/encode.c b/src/encode.c
index d533e1fa..d4a63e16 100644
--- a/src/encode.c
+++ b/src/encode.c
@@ -846,13 +846,16 @@ obj_flush_hdlstream (Dwg_Object *restrict obj, Bit_Chain *restrict dat,
{
unsigned long datpos = bit_position (dat);
unsigned long hdlpos = bit_position (hdl_dat);
+ unsigned long hdlsize = (hdl_dat->size * 8) - hdlpos;
unsigned long objpos = obj->address * 8;
#if 0
unsigned char* oldchain = dat->chain;
#endif
- LOG_TRACE ("Flush handle stream of size %lu (@%lu.%u) to @%lu.%lu\n", hdlpos,
+ LOG_TRACE ("Flush handle stream of %lu bits (@%lu.%u) to @%lu.%lu\n", hdlsize,
hdl_dat->byte, hdl_dat->bit, (datpos - objpos) / 8,
(datpos - objpos) % 8);
+ if (hdlpos > 10000U)
+ LOG_ERROR("Possible hdl_data overflow")
// This might change dat->chain
bit_copy_chain (dat, hdl_dat);
}
--
2.37.1

View File

@ -1,45 +0,0 @@
From 2f36577e6ef6a32c81be48a6faac303f76f6f943 Mon Sep 17 00:00:00 2001
From: Reini Urban <rurban@cpan.org>
Date: Mon, 15 Aug 2022 11:06:14 +0200
Subject: [PATCH] fix obj_flush_hdlstream GH #497
don't free non-temp hdl_dat chain, when it's the dat->chain really.
(on old DWG's)
---
src/encode.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/encode.c b/src/encode.c
index d4a63e16..1b82dd2a 100644
--- a/src/encode.c
+++ b/src/encode.c
@@ -823,9 +823,11 @@ const unsigned char unknown_section[53]
bit_chain_init_dat (&dat2, 12, dat); \
hdl_dat = &dat2; \
ENCODE_COMMON_HANDLES \
+ bit_set_position (hdl_dat, 0); \
obj_flush_hdlstream (obj, dat, hdl_dat); /* common */ \
obj_flush_hdlstream (obj, dat, &dat1); /* special accumulated */ \
- bit_chain_free (&dat1); \
+ if (dat1.chain != dat->chain) \
+ bit_chain_free (&dat1); \
bit_chain_free (&dat2); \
*hdl_dat = *dat; \
hdl_dat = dat; \
@@ -855,7 +857,12 @@ obj_flush_hdlstream (Dwg_Object *restrict obj, Bit_Chain *restrict dat,
hdl_dat->byte, hdl_dat->bit, (datpos - objpos) / 8,
(datpos - objpos) % 8);
if (hdlpos > 10000U)
- LOG_ERROR("Possible hdl_data overflow")
+ LOG_WARN("Possible hdl_data overflow")
+ if (dat->chain == hdl_dat->chain)
+ {
+ LOG_WARN("Ignore identical hdl chains")
+ return;
+ }
// This might change dat->chain
bit_copy_chain (dat, hdl_dat);
}
--
2.37.1

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:45e130182775716fd9ff6879fa61471ac3a9305b5d171fe97a66f2e3288a9711
size 9957300

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4b5b38943e4a060bfee34a8542701b26102262610b1dd4dc58d76fadfb995106
size 18389790

View File

@ -1,11 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQEzBAABCAAdFiEEKJWogdNCcPq/6PdHtPYzOeZdZBQFAmIANh0ACgkQtPYzOeZd
ZBQIfwf/a5K2Z0V5SpRhrCCARKJWnvOuTPC9asPMRqrwe3oXRcTPRS8VB1WZ4OmG
Y2EF2DNsbEjUrm+1/vheWonq1PbDVt5iwxeNXzzTsSNepHECuRz99dL0ZEUHyaHT
hF55GCv8PxUbyD9+TAKZl0yCH/IdLCEhdA8WuGxqYL6WC23B5qIzFkVbSPvw7KkO
47KNOnAHzhYTHbYHiaB+1h7Ikk00aZSIBbHsKvQUrV+Bkj6zNXr25lX/CQj2ykwy
2E6pRU21LH3DMD/RO4YY3FH/blF45YeoMp/0/j6qfuwmGGJ3r4mkAPZF2OXvH6VC
onccuXyA6/DVc+LYwhS8oGN5bdLzPw==
=Hcqb
-----END PGP SIGNATURE-----

View File

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Sat Jul 15 17:21:54 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
- Update to tag 0.12.5.5907
* Addressed CVE-2022-33025 [boo#1200898],
CVE-2023-36271 [boo#1212709], CVE-2023-36272 [boo#1212707],
CVE-2023-36273 [boo#1212706], CVE-2023-36274 [boo#1212705]
- Delete 0001-bits-change-bit_copy_chain.patch,
0001-fix-obj_flush_hdlstream-GH-497.patch (merged)
-------------------------------------------------------------------
Fri Aug 19 15:13:22 UTC 2022 - Jan Engelhardt <jengelh@inai.de>

View File

@ -5,204 +5,203 @@ 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
YyuzO8ZH
=vQvj
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
=TgjH
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -1,7 +1,7 @@
#
# spec file for package libredwg
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -18,19 +18,17 @@
%define lname libredwg0
Name: libredwg
Version: 0.12.5
Version: 0.12.5.5907
Release: 0
Summary: A library to handle DWG files
License: GPL-3.0-or-later
Group: Development/Libraries/C and C++
URL: https://www.gnu.org/software/libredwg/
#Git-Clone: https://github.com/LibreDWG/libredwg/
Source: https://ftp.gnu.org/pub/gnu/libredwg/%name-%version.tar.gz
Source2: https://ftp.gnu.org/pub/gnu/libredwg/%name-%version.tar.gz.sig
#Source: https://ftp.gnu.org/pub/gnu/libredwg/%name-%version.tar.xz
Source: https://github.com/LibreDWG/libredwg/releases/download/%version/libredwg-%version.tar.xz
Source3: http://savannah.gnu.org/people/viewgpg.php?user_id=101103#/%name.keyring
Source4: %name-rpmlintrc
Patch1: 0001-bits-change-bit_copy_chain.patch
Patch2: 0001-fix-obj_flush_hdlstream-GH-497.patch
BuildRequires: pkg-config
%description
@ -40,8 +38,10 @@ OpenDWG libraries. DWG is the native file format of AutoCAD.
%package tools
Summary: Command line utilities for handling DWG file
Group: Productivity/File utilities
%if 0%{?suse_version} < 1599
Requires(post): %install_info_prereq
Requires(preun):%install_info_prereq
%endif
# Both packages ship a %%_bindir/dwg2dxf
Conflicts: libdxfrw-tools
@ -96,6 +96,7 @@ rm -fv "$b/usr/share/dwgadd.example" "$b/usr/share/load_dwg.py" "$b/usr/share/ma
%_bindir/dxf*
%_mandir/man?/*.1%{?ext_man}
%_infodir/LibreDWG.info*%{?ext_info}
%_datadir/libredwg/
%files devel
%license COPYING