New shared loc analysis found a shared location that is not overwritten completely...
authoryeom <yeom>
Thu, 15 Dec 2011 21:32:43 +0000 (21:32 +0000)
committeryeom <yeom>
Thu, 15 Dec 2011 21:32:43 +0000 (21:32 +0000)
commita439ce60d72a530ab13734d49369e172af891fec
tree97070707ccbe25d2bfa85dc335bb8297f8c7fa6d
parentc1bdf3c313f2ba029640788eb3630a2c31df18ff
New shared loc analysis found a shared location that is not overwritten completely in the synthesis filter. Decoder adds input samples to the Synthesis Filter in circular fashion, which means it needs to keep the last position of the previous loop of the decode to the circular queue. However, the value of start index does not matter because the synthesis filter resumes a normal behavior, as long as data is added to the synthesis filter in a row. Therefore, a workaround solution is that BitStream, which is trusted to ss, assigns the index of header that is incremented by one, and then the decoder overwrites the location of the last position in the Synthesis Filter using the header index. Even the header index value is corrupted, the synthesis filter will resume because BitStream is going to providing following headers.
Robust/src/Analysis/SSJava/DefinitelyWrittenCheck.java
Robust/src/Benchmarks/SSJava/MP3Decoder/BitstreamWrapper.java
Robust/src/Benchmarks/SSJava/MP3Decoder/Header.java
Robust/src/Benchmarks/SSJava/MP3Decoder/LayerIIIDecoder.java
Robust/src/Benchmarks/SSJava/MP3Decoder/Player.java