The attached patch (against VDR 1.3.42) should fix this. It needs to be applied to the 'libsi' subdirectory. After that, do a 'make clean' and 'make' in the VDR directory.
- Changed offset and size handling in 'libsi' from 'unsigned' to 'signed', so that overflows can be better detected (thanks to Marcel Wiesweg). - Checking data size in CaDescriptor::Parse() and LinkageDescriptor::Parse() of 'libsi' to avoid crashes with invalid data (thanks to Marcel Wiesweg). - Made CharArray::DataOwnData::assign() in 'libsi' more robust against invalid data (suggested by Oliver Endriss). Also changed CharArray::DataOwnData::Delete() so that it sets 'size' and 'data' to 0.
Thanks also to Helmut Auer for testing and debugging.
Klaus