Skip to content

compress/flate: hang #10426

Closed
Closed
@dvyukov

Description

@dvyukov

The following program:

package main

import (
    "bytes"
    "compress/flate"
    "encoding/hex"
    "io/ioutil"
)

func main() {
    data, _ := hex.DecodeString("344c4a4e494d4b070000ff2e2eff2e2e2e2e2eff")
    _, err := ioutil.ReadAll(flate.NewReader(bytes.NewReader(data)))
    if _, ok := err.(flate.InternalError); ok {
        panic(err)
    }
}

hangs at:

#0  compress/flate.(*decompressor).huffSym (f=0xc208070000, h=0xc208070030, ~r1=0, ~r2=...)
    at /ssd/src/go10/src/compress/flate/inflate.go:645
#1  0x0000000000454a59 in compress/flate.(*decompressor).huffmanBlock (f=0xc208070000)
    at /ssd/src/go10/src/compress/flate/inflate.go:406
#2  0x0000000000453f03 in compress/flate.(*decompressor).Read (f=0xc208070000, b= []uint8 = {...}, 
    ~r1=32768, ~r2=...) at /ssd/src/go10/src/compress/flate/inflate.go:286
#3  0x000000000044f7ec in bytes.(*Buffer).ReadFrom (b=0xc208046070, r=..., n=386662400, err=...)
    at /ssd/src/go10/src/bytes/buffer.go:173
#4  0x0000000000457f0f in io/ioutil.readAll (r=..., capacity=512, b= []uint8, err=...)
    at /ssd/src/go10/src/io/ioutil/ioutil.go:33
#5  0x0000000000458028 in io/ioutil.ReadAll (r=..., ~r1= []uint8, ~r2=...)
    at /ssd/src/go10/src/io/ioutil/ioutil.go:42
#6  0x0000000000400f42 in main.main () at /tmp/flate.go:12

I am on commit a02d925

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions