Skip to content

File close twice in part_reader #57

@zengxiaobai

Description

@zengxiaobai
func (r *partsReader) WriteTo(w io.Writer) (n int64, err error) {
	if r.index == len(r.R) {
		return 0, nil
	}


	var (
		nn  int64
		rrs = r.R[r.index:]
	)


	for _, reader := range rrs {
		nn, err = io.Copy(w, reader)
		n += nn
		if err != nil {
			if closeErr := reader.Close(); closeErr != nil {
				return n, closeErr
			}


			if err != io.EOF {
				return n, err
			}
			return
		}
		r.index++
		if r.index == len(r.R) {
			err = io.EOF
		}
	}
	return
}

			if closeErr := reader.Close(); closeErr != nil {
				return n, closeErr
			}

here should r.index++ also in WriteTo and Read

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions