Closed Lakr233 closed 3 years ago
The line numbers seem to be off by 1 for some reason, but from what I can see from those lines, it seems you're trying to process an empty Data
which causes this issue, though to confirm this I will need to look at the sample data. That said, the empty Data
is not a good reason for a crash...
LittleEndianByteReader
does what it was designed to do: it is the responsibility of the "user" of BitByteData to check that there is any data remaining before calling any methods. So the oversight is on SWCompression's part, and additional checks should be added there to prevent such crashes. For this reason, I transferred this issue to that repository.
The fix should be relatively straightforward, and it shouldn't take long time for me to implement it. However, since iOS 15 is coming next week, I suspect a new Swift will be released as well, so I will wait until it happens to check that nothing is broken due to that.
I've been using your code in production for my project Saily, and found this issue in Bugsnag backend.
Currently I can not provide you the sample data about it, but will back to you if I get anything new.
Here is the full report in casue you need it.
bugsnag_error_stacktrace_EXC_BREAKPOINT_event.txt
In my project, line 33 seems to be
return data[offset]
.And in SWCompression, (LZMA2.swift:26:54)