compress/lzw: compress/decompress corrupts data (original) (raw)
The following program fails with the panic:
package main
import ( "bytes" "compress/lzw" "fmt" "io/ioutil" )
func main() { uncomp := []byte("a") buf := new(bytes.Buffer) w := lzw.NewWriter(buf, lzw.LSB, 2) _, err := w.Write(uncomp) if err != nil { panic(err) } if err := w.Close(); err != nil { panic(err) } r1 := lzw.NewReader(buf, lzw.LSB, 2) uncomp1, err := ioutil.ReadAll(r1) if err != nil { panic(err) } if !bytes.Equal(uncomp, uncomp1) { fmt.Printf("data0: %q\n", uncomp) fmt.Printf("data0: %q\n", uncomp1) panic("data differs") } }
data0: "a"
data0: "\x01"
panic: data differs
go version devel +b0532a9 Mon Jun 8 05:13:15 2015 +0000 linux/amd64