Skip to content

Commit 9ab82da

Browse files
authored
Merge pull request #100 from guzba/ryan
0.10.18
2 parents a0057dc + e6824d8 commit 9ab82da

File tree

4 files changed

+42
-4
lines changed

4 files changed

+42
-4
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@ tmp/
1414
dump.txt
1515
test_tmp/
1616
*.dSYM/
17+
emscripten/

src/zippy/gzip.nim

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,24 @@ proc uncompressGzip*(
6565
checksum = read32(src, len - 8)
6666
isize = read32(src, len - 4)
6767

68+
when sizeof(int) == 4:
69+
if isize > int.high.uint32:
70+
raise newException(ZippyError, "Uncompressed size exceeds max string len")
71+
6872
if trustSize:
69-
dst.setLen(isize + 16) # Leave some room to write past the end
73+
when sizeof(int) == 4:
74+
dst.setLen(isize)
75+
else:
76+
dst.setLen(isize + 16) # Leave some room to write past the end
7077

7178
inflate(dst, src, len, pos)
7279

7380
if checksum != crc32(dst):
7481
raise newException(ZippyError, "Checksum verification failed")
7582

76-
if isize != (dst.len mod (1 shl 32)).uint32:
77-
raise newException(ZippyError, "Size verification failed")
83+
when sizeof(int) == 4:
84+
if isize != dst.len.uint32:
85+
raise newException(ZippyError, "Size verification failed")
86+
else:
87+
if isize != (dst.len mod (1 shl 32)).uint32:
88+
raise newException(ZippyError, "Size verification failed")

tests/config.nims

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,27 @@
11
--path:"../src"
2+
3+
when defined(emscripten):
4+
--nimcache:tmp
5+
--os:linux
6+
--cpu:wasm32
7+
--cc:clang
8+
when defined(windows):
9+
--clang.exe:emcc.bat
10+
--clang.linkerexe:emcc.bat
11+
--clang.cpp.exe:emcc.bat
12+
--clang.cpp.linkerexe:emcc.bat
13+
else:
14+
--clang.exe:emcc
15+
--clang.linkerexe:emcc
16+
--clang.cpp.exe:emcc
17+
--clang.cpp.linkerexe:emcc
18+
--listCmd
19+
--gc:arc
20+
--exceptions:goto
21+
--define:noSignalHandler
22+
--debugger:native
23+
--define:release
24+
25+
mkdir("emscripten")
26+
27+
switch("passL", "-o emscripten/zippy.html --preload-file tests/data")

zippy.nimble

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version = "0.10.17"
1+
version = "0.10.18"
22
author = "Ryan Oldenburg"
33
description = "Pure Nim implementation of deflate, zlib, gzip and zip."
44
license = "MIT"

0 commit comments

Comments
 (0)