@@ -106,6 +106,7 @@ def decompress(pString):
106
106
cdef char * cString # *char pStr
107
107
cdef char * result # destination buffer
108
108
cdef bytes pyResult # python wrapped result
109
+ cdef int ret
109
110
110
111
# convert to char*
111
112
cString = pString
@@ -114,7 +115,8 @@ def decompress(pString):
114
115
# malloc
115
116
result = < char * > malloc(original_size)
116
117
# decompress
117
- if LZ4_decompress_safe(cString + hdr_size, result, compressed_size - hdr_size, original_size) < 0 :
118
+ ret = LZ4_decompress_safe(cString + hdr_size, result, compressed_size - hdr_size, original_size)
119
+ if ret <= 0 or ret != original_size:
118
120
free(result)
119
121
raise Exception (" Error decompressing" )
120
122
# cast back into python string
@@ -211,7 +213,8 @@ def decompressarr(pStrList):
211
213
cdef uint32_t compressed_size
212
214
cdef char * result
213
215
cdef Py_ssize_t i
214
- cdef int ret = 0
216
+ cdef int ret
217
+ cdef int error = 0
215
218
216
219
# output parameters
217
220
cdef char ** cResult = < char ** > malloc(n * sizeof(char * ))
@@ -232,8 +235,9 @@ def decompressarr(pStrList):
232
235
# malloc
233
236
result = < char * > malloc(original_size)
234
237
# decompress
235
- if LZ4_decompress_safe(cString + hdr_size, result, compressed_size - hdr_size, original_size) < 0 :
236
- ret = - 1
238
+ ret = LZ4_decompress_safe(cString + hdr_size, result, compressed_size - hdr_size, original_size)
239
+ if ret <= 0 or ret != original_size:
240
+ error = - 1
237
241
# assign to result
238
242
cResult[i] = result
239
243
lengths[i] = original_size
@@ -248,7 +252,7 @@ def decompressarr(pStrList):
248
252
free(cResult)
249
253
free(cStrList)
250
254
251
- if ret == - 1 :
255
+ if error == - 1 :
252
256
raise Exception (" Error decompressing array" )
253
257
254
258
return result_list
0 commit comments