From 8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 14 Jul 2018 21:03:06 +0100 Subject: gentoo resync : 14.07.2018 --- games-util/dzip/Manifest | 6 ++ games-util/dzip/dzip-2.9-r3.ebuild | 30 ++++++++ games-util/dzip/files/dzip-2.9-scrub-names.patch | 88 ++++++++++++++++++++++ .../dzip/files/dzip-2.9-system-zlib-r2.patch | 72 ++++++++++++++++++ games-util/dzip/files/dzip-amd64.diff | 30 ++++++++ games-util/dzip/metadata.xml | 11 +++ 6 files changed, 237 insertions(+) create mode 100644 games-util/dzip/Manifest create mode 100644 games-util/dzip/dzip-2.9-r3.ebuild create mode 100644 games-util/dzip/files/dzip-2.9-scrub-names.patch create mode 100644 games-util/dzip/files/dzip-2.9-system-zlib-r2.patch create mode 100644 games-util/dzip/files/dzip-amd64.diff create mode 100644 games-util/dzip/metadata.xml (limited to 'games-util/dzip') diff --git a/games-util/dzip/Manifest b/games-util/dzip/Manifest new file mode 100644 index 000000000000..2bb02e7a6b5b --- /dev/null +++ b/games-util/dzip/Manifest @@ -0,0 +1,6 @@ +AUX dzip-2.9-scrub-names.patch 1816 BLAKE2B e56b4086e70ff682e8163dc8f6c7620882f7b4ee9245111da93faca8a5cee1fb0aa9422dc03451ff1c147664adc6dec34da0a1a99ec31c4f56179b37fcd6ea10 SHA512 94fceecee4538bb0d0aac460d864ebb4bbbb3ad3aa6be7593115bc850e19b1630bceb2df9268e569a30457e8b2483b3678199629b78d192dcdf3bee0b00178c8 +AUX dzip-2.9-system-zlib-r2.patch 1844 BLAKE2B ebaa30eb9100cd616c4986240d6ba2c360a2cbd17d16aa67172bbae41da1be92aeb77ec3af942a8f0c86029c29ad92900ba991020388a43eab050ca28d799a5f SHA512 04e95334b03b1590bfd73cd5905186a8ba28a36655b9c829dcd913842c0f2c2802133d453134080f3a4664ec106e7693482b43981c5849ecc1a781a7f37b0625 +AUX dzip-amd64.diff 643 BLAKE2B 6752ccdab94f080cc0905bceabfe4d49fdd007c366fb10f833e5d85935ce1f206c5ba39be7f7414ed1dd0f01f16995ed17e36c341e8accc4530ff75a5c88f43f SHA512 30a381f95807cc61b8c393f3e5fb5c1f250e4578b1601f5ee8944c7b94a3d3f983478075cee3c76858b5d0df768b6bd3e91578e6679f443fb8d6f7fa30b48f18 +DIST dz29src.zip 100354 BLAKE2B 1b0ab969daa030c135dab049f9950079f0337ca64636765298316e699614dfe3c139b0b88321c29278aadbe6b93ca75f2d656e82ae2dbf54b98f19d9fd3053d9 SHA512 3e1071da6ae5c9064b7222f1bb553b787ded4acbfe8463a7a94f17e60748b68cdfc17672ef7220deddd394c6709efe632e53e61508fd48bfa9001e43a37e788f +EBUILD dzip-2.9-r3.ebuild 648 BLAKE2B 98bb809f8fc9e6232aa3ae0ff43af43c2661e0d523db63bc7f42f36af5059817362dc8a188833b262fbe9f08547c2830969dbd495658adf7ff381b559bd90fca SHA512 44cc75228481fabec5366375bb2418624fc26784df93894e42f1a28195109ab2a112b70cc3fcd29578c22ab2065f247425117a49d80839319411d079d8f8596c +MISC metadata.xml 326 BLAKE2B 24ee80a289a9dc670ba0592e623568a083bff065c740db1dfeb877329aa2f12b59eb20491f488f6311afd3e8df849c123013503fdf2ef739ee9c357f965e5797 SHA512 a1550e2953010f4593e3c7cbe54783f4e0a5859f58e756b6cde50c0d404ca10f8eb0f43df223c6f7df454429d90f496a99aee08f68c8830a1aa396e1febcbe7c diff --git a/games-util/dzip/dzip-2.9-r3.ebuild b/games-util/dzip/dzip-2.9-r3.ebuild new file mode 100644 index 000000000000..a58b74eb99b2 --- /dev/null +++ b/games-util/dzip/dzip-2.9-r3.ebuild @@ -0,0 +1,30 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 +inherit eutils + +DESCRIPTION="compressor/uncompressor for demo recordings from id's Quake" +HOMEPAGE="http://speeddemosarchive.com/dzip/" +SRC_URI="http://speeddemosarchive.com/dzip/dz${PV/./}src.zip" + +LICENSE="ZLIB" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" +DEPEND="app-arch/unzip" +RDEPEND="" + +S="${WORKDIR}" + +src_prepare() { + epatch "${FILESDIR}"/${P}-system-zlib-r2.patch + epatch "${FILESDIR}"/${P}-scrub-names.patch #93079 + epatch "${FILESDIR}/dzip-amd64.diff" + mv -f Makefile{.linux,} +} + +src_install () { + dobin dzip + dodoc Readme +} diff --git a/games-util/dzip/files/dzip-2.9-scrub-names.patch b/games-util/dzip/files/dzip-2.9-scrub-names.patch new file mode 100644 index 000000000000..079fae3fd070 --- /dev/null +++ b/games-util/dzip/files/dzip-2.9-scrub-names.patch @@ -0,0 +1,88 @@ +Fix directory traversals issues. + +Since .dz files normally just have relative directory trees: +pak/ +pak/file +pak/subdir/file + +we strip out all the components which ascend in the directory tree + +http://bugs.gentoo.org/93079 + +--- main.c ++++ main.c +@@ -77,6 +77,48 @@ int dzRead (int inlen) + return 1; + } + ++#define IS_SEP(c) (c == '/' || c == ':' || c == '\\') ++void scrub_name(char *smee) ++{ ++ char *paths[] = { "../", "..\\", "..:", NULL}; ++ size_t p, i, len; ++ char scrubit, scrubbed; ++ ++ scrubbed = 0; ++ len = strlen(smee); ++ i = 0; ++ scrubit = 1; ++ ++ /* search the path and scrub out all relative paths */ ++ while (i + 3 < len) { ++ for (p = 0; paths[p]; ++p) { ++ if (scrubit && !strncmp(paths[p], smee+i, 3)) { ++ scrubbed = 1; ++ memset(smee+i, '\0', 3); ++ i += 2; ++ break; ++ } ++ } ++ scrubit = IS_SEP(smee[i]) || smee[i] == '\0'; ++ ++i; ++ } ++ ++ if (!scrubbed) ++ return; ++ ++ /* condense the string over all the scrubbed bits */ ++ p = 0; ++ for (i = 0; i < len; ++i) { ++ while (p < len && smee[p] == '\0') ++ ++p; ++ if (p == len) { ++ smee[i] = '\0'; ++ break; ++ } ++ smee[i] = smee[p++]; ++ } ++} ++ + int dzReadDirectoryEntry (direntry_t *de) + { + char *s; +@@ -102,6 +144,7 @@ int dzReadDirectoryEntry (direntry_t *de + s = Dzip_malloc(de->len); + dzFile_Read(s, de->len); + de->name = s; ++ scrub_name(de->name); + if (de->pak && de->type != TYPE_PAK) + return 1; /* dont mess with dirchar inside pakfiles */ + do +--- v1code.c ++++ v1code.c +@@ -201,6 +201,7 @@ void demv1_dxentities(void) + + } + ++extern void scrub_name(char *smee); + void dzUncompressV1 (int testing) + { + int i, inlen = 0; +@@ -221,6 +222,7 @@ void dzUncompressV1 (int testing) + { + de = directory + i; + crcval = INITCRC; ++ scrub_name(de->name); + printf("%s %s",action,de->name); + fflush(stdout); + diff --git a/games-util/dzip/files/dzip-2.9-system-zlib-r2.patch b/games-util/dzip/files/dzip-2.9-system-zlib-r2.patch new file mode 100644 index 000000000000..4bf10f8b98f6 --- /dev/null +++ b/games-util/dzip/files/dzip-2.9-system-zlib-r2.patch @@ -0,0 +1,72 @@ +--- dzip.h ++++ dzip.h +@@ -2,7 +2,7 @@ + #include + #include + +-#include "zlib/zlib.h" ++#include + + typedef unsigned char uchar; + +@@ -177,4 +177,4 @@ + #else + #define DIRCHAR '/' + #define WRONGCHAR '\\' +-#endif +\ No newline at end of file ++#endif +--- Makefile.linux ++++ Makefile.linux +@@ -1,18 +1,17 @@ + # Makefile for linux + +-CC = gcc +-CFLAGS = -Wall -O3 ++CC ?= gcc ++CFLAGS ?= -O3 ++CFLAGS += -Wall + TARGET = dzip + OBJECTS = main.o compress.o uncompress.o list.o crc32.o \ +- encode.o decode.o v1code.o conmain.o delete.o \ +- zlib/adler32.o zlib/deflate.o zlib/trees.o \ +- zlib/inflate.o zlib/infblock.o zlib/inftrees.o zlib/infcodes.o \ +- zlib/infutil.o zlib/inffast.o ++ encode.o decode.o v1code.o conmain.o delete.o ++LIBS = -lz + + TMPFILES = gmon.out frag* + + $(TARGET): $(OBJECTS) +- $(CC) $(CFLAGS) $(OBJECTS) -o $(TARGET) $(LDFLAGS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS) + + clean: + rm -f $(TARGET) $(OBJECTS) $(TMPFILES) +@@ -24,4 +23,4 @@ + encode.o: encode.c dzip.h + list.o: list.c dzip.h dzipcon.h + decode.o: decode.c dzip.h dzipcon.h +-v1code.o: v1code.c dzip.h dzipcon.h +\ No newline at end of file ++v1code.o: v1code.c dzip.h dzipcon.h +--- conmain.c.orig 2010-01-17 15:10:20.938605770 +0000 ++++ conmain.c 2010-01-17 15:10:34.180603846 +0000 +@@ -507,8 +507,8 @@ + if (!strcmp(argv[i],"-o")) i++; + } + +- zs.zalloc = Dzip_calloc; +- zs.zfree = free; ++ zs.zalloc = Z_NULL; // Dzip_calloc; <- wrong number of arguments, reverting to default ++ zs.zfree = Z_NULL; // free; <- wrong number of arguments, reverting to default + + if (flag[SW_LIST] || flag[SW_EXTRACT] || flag[SW_VERIFY]) + { +@@ -618,4 +618,4 @@ + dzDeleteFiles_MakeList(files + 1, fileargs - 1); + free(files); + exit(0); +-} +\ No newline at end of file ++} diff --git a/games-util/dzip/files/dzip-amd64.diff b/games-util/dzip/files/dzip-amd64.diff new file mode 100644 index 000000000000..ef49ff330570 --- /dev/null +++ b/games-util/dzip/files/dzip-amd64.diff @@ -0,0 +1,30 @@ +--- dzip/crc32.c 2002-07-12 06:07:54.000000000 +0200 ++++ dz/crc32.c 2010-01-20 23:23:43.000000000 +0100 +@@ -1,10 +1,12 @@ ++#include ++ + unsigned long crcval; + unsigned long crctable[256]; + +-unsigned long crc_reflect(unsigned long x, int bits) +-{ +- int i; +- unsigned long v = 0, b = 1 << (bits - 1); ++unsigned long crc_reflect(uint32_t x, int bits) ++{ ++ uint32_t i; ++ uint32_t v = 0, b = 1 << (bits - 1); + + for (i = 0; i < bits; i++) + { +@@ -16,8 +18,8 @@ + + void crc_init(void) + { +- unsigned long crcpol = 0x04c11db7; +- unsigned long i, j, k; ++ uint32_t crcpol = 0x04c11db7; ++ uint32_t i, j, k; + + for (i = 0; i < 256; i++) + { diff --git a/games-util/dzip/metadata.xml b/games-util/dzip/metadata.xml new file mode 100644 index 000000000000..d3c0508f60cd --- /dev/null +++ b/games-util/dzip/metadata.xml @@ -0,0 +1,11 @@ + + + + + hanno@gentoo.org + + + games@gentoo.org + Gentoo Games Project + + -- cgit v1.2.3