aboutsummaryrefslogtreecommitdiffstats
path: root/package/libs/zlib/patches/003-arm-specific-optimisations-for-inflate.patch
diff options
context:
space:
mode:
authorNick Hainke <vincent@systemli.org>2022-10-21 14:36:47 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2022-11-13 20:47:57 +0100
commitde79a0a9e0679b03d35c92e3abbce6e9fbb19a9d (patch)
tree5ec843446bbfeb385b3340b231fb5d8c6bf3173f /package/libs/zlib/patches/003-arm-specific-optimisations-for-inflate.patch
parentcec9cbef449daea6529fbda64777ff1b7ae4e499 (diff)
downloadupstream-de79a0a9e0679b03d35c92e3abbce6e9fbb19a9d.tar.gz
upstream-de79a0a9e0679b03d35c92e3abbce6e9fbb19a9d.tar.bz2
upstream-de79a0a9e0679b03d35c92e3abbce6e9fbb19a9d.zip
zlib: update to 1.2.13
Remove "001-neon-implementation-of-adler32.patch" because upstreamed deleted assembler code optimizations: https://github.com/madler/zlib/commit/d0704a820186481da35d08f4b655881e1d32089f Remove upstreamed patches: - 006-fix-CVE-2022-37434.patch - 007-fix-null-dereference-in-fix-CVE-2022-37434.patch Refresh patches: - 002-arm-specific-optimisations-for-inflate.patch - 003-arm-specific-optimisations-for-inflate.patch - 004-attach-sourcefiles-in-patch-002-to-buildsystem.patch Switch to "https github.com" for downloading source files. Release Announcements: https://github.com/madler/zlib/releases/tag/v1.2.13 Signed-off-by: Nick Hainke <vincent@systemli.org>
Diffstat (limited to 'package/libs/zlib/patches/003-arm-specific-optimisations-for-inflate.patch')
-rw-r--r--package/libs/zlib/patches/003-arm-specific-optimisations-for-inflate.patch31
1 files changed, 13 insertions, 18 deletions
diff --git a/package/libs/zlib/patches/003-arm-specific-optimisations-for-inflate.patch b/package/libs/zlib/patches/003-arm-specific-optimisations-for-inflate.patch
index 9370264c40..1f83b500ba 100644
--- a/package/libs/zlib/patches/003-arm-specific-optimisations-for-inflate.patch
+++ b/package/libs/zlib/patches/003-arm-specific-optimisations-for-inflate.patch
@@ -16,9 +16,6 @@ Change-Id: I59854eb25d2b1e43561c8a2afaf9175bf10cf674
3 files changed, 335 insertions(+), 62 deletions(-)
create mode 100644 contrib/arm/chunkcopy.h
-diff --git a/contrib/arm/chunkcopy.h b/contrib/arm/chunkcopy.h
-new file mode 100644
-index 00000000..2d6fd6f9
--- /dev/null
+++ b/contrib/arm/chunkcopy.h
@@ -0,0 +1,279 @@
@@ -301,8 +298,6 @@ index 00000000..2d6fd6f9
+#undef Z_RESTRICT
+
+#endif /* CHUNKCOPY_H */
-diff --git a/contrib/arm/inffast.c b/contrib/arm/inffast.c
-index 0dbd1dbc..f7f50071 100644
--- a/contrib/arm/inffast.c
+++ b/contrib/arm/inffast.c
@@ -7,6 +7,7 @@
@@ -313,7 +308,7 @@ index 0dbd1dbc..f7f50071 100644
#ifdef ASMINF
# pragma message("Assembler code may have bugs -- use at your own risk")
-@@ -57,6 +58,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
+@@ -57,6 +58,7 @@ unsigned start; /* inflate()'s s
unsigned char FAR *out; /* local strm->next_out */
unsigned char FAR *beg; /* inflate()'s initial strm->next_out */
unsigned char FAR *end; /* while out < end, enough space available */
@@ -321,7 +316,7 @@ index 0dbd1dbc..f7f50071 100644
#ifdef INFLATE_STRICT
unsigned dmax; /* maximum distance from zlib header */
#endif
-@@ -84,12 +86,13 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
+@@ -84,12 +86,13 @@ unsigned start; /* inflate()'s s
out = strm->next_out;
beg = out - (start - strm->avail_out);
end = out + (strm->avail_out - 257);
@@ -336,7 +331,7 @@ index 0dbd1dbc..f7f50071 100644
window = state->window;
hold = state->hold;
bits = state->bits;
-@@ -197,70 +200,51 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */
+@@ -197,70 +200,51 @@ unsigned start; /* inflate()'s s
#endif
}
from = window;
@@ -371,14 +366,8 @@ index 0dbd1dbc..f7f50071 100644
- } while (--op);
- from = out - dist; /* rest from output */
- }
-+ out = chunkcopy_safe(out, from, op, limit);
-+ from = window; /* more from start of window */
-+ op = wnext;
-+ /* This (rare) case can create a situation where
-+ the first chunkcopy below must be checked.
-+ */
- }
- }
+- }
+- }
- else { /* contiguous in window */
- from += wnext - op;
- if (op < len) { /* some from window */
@@ -399,6 +388,14 @@ index 0dbd1dbc..f7f50071 100644
- *out++ = *from++;
- if (len > 1)
- *out++ = *from++;
++ out = chunkcopy_safe(out, from, op, limit);
++ from = window; /* more from start of window */
++ op = wnext;
++ /* This (rare) case can create a situation where
++ the first chunkcopy below must be checked.
++ */
++ }
++ }
+ if (op < len) { /* still need some from output */
+ out = chunkcopy_safe(out, from, op, limit);
+ len -= op;
@@ -443,8 +440,6 @@ index 0dbd1dbc..f7f50071 100644
}
}
else if ((op & 64) == 0) { /* 2nd level distance code */
-diff --git a/contrib/arm/inflate.c b/contrib/arm/inflate.c
-index ac333e8c..e40322c3 100644
--- a/contrib/arm/inflate.c
+++ b/contrib/arm/inflate.c
@@ -84,6 +84,7 @@