mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 13:28:25 +00:00 
			
		
		
		
	go1.16 (#14783)
This commit is contained in:
		
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
Copyright (c) 2014-2020  Ulrich Kunitz
 | 
			
		||||
Copyright (c) 2014-2021  Ulrich Kunitz
 | 
			
		||||
All rights reserved.
 | 
			
		||||
 | 
			
		||||
Redistribution and use in source and binary forms, with or without
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								vendor/github.com/ulikunitz/xz/SECURITY.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/ulikunitz/xz/SECURITY.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
# Security Policy
 | 
			
		||||
 | 
			
		||||
## Supported Versions
 | 
			
		||||
 | 
			
		||||
Currently the last minor version v0.5.x is supported.
 | 
			
		||||
 | 
			
		||||
## Reporting a Vulnerability
 | 
			
		||||
 | 
			
		||||
Report a vulnerability by creating a Github issue at
 | 
			
		||||
<https://github.com/ulikunitz/xz/issues>. Expect a response in a week.
 | 
			
		||||
							
								
								
									
										116
									
								
								vendor/github.com/ulikunitz/xz/TODO.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										116
									
								
								vendor/github.com/ulikunitz/xz/TODO.md
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -8,19 +8,17 @@
 | 
			
		||||
 | 
			
		||||
1. Review encoder and check for lzma improvements under xz.
 | 
			
		||||
2. Fix binary tree matcher.
 | 
			
		||||
3. Compare compression ratio with xz tool using comparable parameters
 | 
			
		||||
   and optimize parameters
 | 
			
		||||
4. Do some optimizations
 | 
			
		||||
    - rename operation action and make it a simple type of size 8
 | 
			
		||||
    - make maxMatches, wordSize parameters
 | 
			
		||||
    - stop searching after a certain length is found (parameter sweetLen)
 | 
			
		||||
3. Compare compression ratio with xz tool using comparable parameters and optimize parameters
 | 
			
		||||
4. rename operation action and make it a simple type of size 8
 | 
			
		||||
5. make maxMatches, wordSize parameters
 | 
			
		||||
6. stop searching after a certain length is found (parameter sweetLen)
 | 
			
		||||
 | 
			
		||||
## Release v0.7
 | 
			
		||||
 | 
			
		||||
1. Optimize code
 | 
			
		||||
2. Do statistical analysis to get linear presets.
 | 
			
		||||
3. Test sync.Pool compatability for xz and lzma Writer and Reader
 | 
			
		||||
3. Fuzz optimized code.
 | 
			
		||||
4. Fuzz optimized code.
 | 
			
		||||
 | 
			
		||||
## Release v0.8
 | 
			
		||||
 | 
			
		||||
@@ -44,53 +42,81 @@
 | 
			
		||||
 | 
			
		||||
## Package lzma
 | 
			
		||||
 | 
			
		||||
### Release v0.6
 | 
			
		||||
 | 
			
		||||
- Rewrite Encoder into a simple greedy one-op-at-a-time encoder
 | 
			
		||||
  including
 | 
			
		||||
    + simple scan at the dictionary head for the same byte
 | 
			
		||||
    + use the killer byte (requiring matches to get longer, the first
 | 
			
		||||
      test should be the byte that would make the match longer)
 | 
			
		||||
### v0.6
 | 
			
		||||
 | 
			
		||||
* Rewrite Encoder into a simple greedy one-op-at-a-time encoder including
 | 
			
		||||
  * simple scan at the dictionary head for the same byte
 | 
			
		||||
  * use the killer byte (requiring matches to get longer, the first test should be the byte that would make the match longer)
 | 
			
		||||
 | 
			
		||||
## Optimizations
 | 
			
		||||
 | 
			
		||||
- There may be a lot of false sharing in lzma.State; check whether this
 | 
			
		||||
  can be improved by reorganizing the internal structure of it.
 | 
			
		||||
- Check whether batching encoding and decoding improves speed.
 | 
			
		||||
* There may be a lot of false sharing in lzma. State; check whether this  can be improved by reorganizing the internal structure of it.
 | 
			
		||||
 | 
			
		||||
* Check whether batching encoding and decoding improves speed.
 | 
			
		||||
 | 
			
		||||
### DAG optimizations
 | 
			
		||||
 | 
			
		||||
- Use full buffer to create minimal bit-length above range encoder.
 | 
			
		||||
- Might be too slow (see v0.4)
 | 
			
		||||
* Use full buffer to create minimal bit-length above range encoder.
 | 
			
		||||
* Might be too slow (see v0.4)
 | 
			
		||||
 | 
			
		||||
### Different match finders
 | 
			
		||||
 | 
			
		||||
- hashes with 2, 3 characters additional to 4 characters
 | 
			
		||||
- binary trees with 2-7 characters (uint64 as key, use uint32 as
 | 
			
		||||
* hashes with 2, 3 characters additional to 4 characters
 | 
			
		||||
* binary trees with 2-7 characters (uint64 as key, use uint32 as
 | 
			
		||||
 | 
			
		||||
  pointers into a an array)
 | 
			
		||||
- rb-trees with 2-7 characters (uint64 as key, use uint32 as pointers
 | 
			
		||||
 | 
			
		||||
* rb-trees with 2-7 characters (uint64 as key, use uint32 as pointers
 | 
			
		||||
 | 
			
		||||
  into an array with bit-steeling for the colors)
 | 
			
		||||
 | 
			
		||||
## Release Procedure
 | 
			
		||||
 | 
			
		||||
- execute goch -l for all packages; probably with lower param like 0.5.
 | 
			
		||||
- check orthography with gospell
 | 
			
		||||
- Write release notes in doc/relnotes.
 | 
			
		||||
- Update README.md
 | 
			
		||||
- xb copyright . in xz directory to ensure all new files have Copyright
 | 
			
		||||
  header
 | 
			
		||||
- VERSION=<version> go generate github.com/ulikunitz/xz/... to update
 | 
			
		||||
  version files
 | 
			
		||||
- Execute test for Linux/amd64, Linux/x86 and Windows/amd64.
 | 
			
		||||
- Update TODO.md - write short log entry
 | 
			
		||||
- git checkout master && git merge dev
 | 
			
		||||
- git tag -a <version>
 | 
			
		||||
- git push
 | 
			
		||||
* execute goch -l for all packages; probably with lower param like 0.5.
 | 
			
		||||
* check orthography with gospell
 | 
			
		||||
* Write release notes in doc/relnotes.
 | 
			
		||||
* Update README.md
 | 
			
		||||
* xb copyright . in xz directory to ensure all new files have Copyright header
 | 
			
		||||
* `VERSION=<version> go generate github.com/ulikunitz/xz/...` to update version files
 | 
			
		||||
* Execute test for Linux/amd64, Linux/x86 and Windows/amd64.
 | 
			
		||||
* Update TODO.md - write short log entry
 | 
			
		||||
* `git checkout master && git merge dev`
 | 
			
		||||
* `git tag -a <version>`
 | 
			
		||||
* `git push`
 | 
			
		||||
 | 
			
		||||
## Log
 | 
			
		||||
 | 
			
		||||
## 2020-08-19
 | 
			
		||||
### 2021-02-02
 | 
			
		||||
 | 
			
		||||
Mituo Heijo has fuzzed xz and found a bug in the function readIndexBody. The
 | 
			
		||||
function allocated a slice of records immediately after reading the value
 | 
			
		||||
without further checks. Since the number has been too large the make function
 | 
			
		||||
did panic. The fix is to check the number against the expected number of records
 | 
			
		||||
before allocating the records.
 | 
			
		||||
 | 
			
		||||
### 2020-12-17
 | 
			
		||||
 | 
			
		||||
Release v0.5.9 fixes warnings, a typo and adds SECURITY.md.
 | 
			
		||||
 | 
			
		||||
One fix is interesting.
 | 
			
		||||
 | 
			
		||||
```go
 | 
			
		||||
const (
 | 
			
		||||
  a byte = 0x1
 | 
			
		||||
  b      = 0x2
 | 
			
		||||
)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The constants a and b don't have the same type. Correct is
 | 
			
		||||
 | 
			
		||||
```go
 | 
			
		||||
const (
 | 
			
		||||
  a byte = 0x1
 | 
			
		||||
  b byte = 0x2
 | 
			
		||||
)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### 2020-08-19
 | 
			
		||||
 | 
			
		||||
Release v0.5.8 fixes issue
 | 
			
		||||
[issue #35](https://github.com/ulikunitz/xz/issues/35).
 | 
			
		||||
@@ -208,8 +234,8 @@ MININT.
 | 
			
		||||
 | 
			
		||||
### 2015-06-04
 | 
			
		||||
 | 
			
		||||
It has been a productive day. I improved the interface of lzma.Reader
 | 
			
		||||
and lzma.Writer and fixed the error handling.
 | 
			
		||||
It has been a productive day. I improved the interface of lzma. Reader
 | 
			
		||||
and lzma. Writer and fixed the error handling.
 | 
			
		||||
 | 
			
		||||
### 2015-06-01
 | 
			
		||||
 | 
			
		||||
@@ -260,7 +286,7 @@ needed anymore.
 | 
			
		||||
 | 
			
		||||
However I will implement a ReaderState and WriterState type to use
 | 
			
		||||
static typing to ensure the right State object is combined with the
 | 
			
		||||
right lzbase.Reader and lzbase.Writer.
 | 
			
		||||
right lzbase. Reader and lzbase. Writer.
 | 
			
		||||
 | 
			
		||||
As a start I have implemented ReaderState and WriterState to ensure
 | 
			
		||||
that the state for reading is only used by readers and WriterState only
 | 
			
		||||
@@ -282,11 +308,11 @@ old lzma package has been completely removed.
 | 
			
		||||
 | 
			
		||||
### 2015-04-05
 | 
			
		||||
 | 
			
		||||
Implemented lzma.Reader and tested it.
 | 
			
		||||
Implemented lzma. Reader and tested it.
 | 
			
		||||
 | 
			
		||||
### 2015-04-04
 | 
			
		||||
 | 
			
		||||
Implemented baseReader by adapting code form lzma.Reader.
 | 
			
		||||
Implemented baseReader by adapting code form lzma. Reader.
 | 
			
		||||
 | 
			
		||||
### 2015-04-03
 | 
			
		||||
 | 
			
		||||
@@ -302,7 +328,7 @@ However in Francesco Campoy's presentation "Go for Javaneros
 | 
			
		||||
(Javaïstes?)" is the the idea that using an embedded field E, all the
 | 
			
		||||
methods of E will be defined on T. If E is an interface T satisfies E.
 | 
			
		||||
 | 
			
		||||
https://talks.golang.org/2014/go4java.slide#51
 | 
			
		||||
<https://talks.golang.org/2014/go4java.slide#51>
 | 
			
		||||
 | 
			
		||||
I have never used this, but it seems to be a cool idea.
 | 
			
		||||
 | 
			
		||||
@@ -327,11 +353,11 @@ and the opCodec.
 | 
			
		||||
 | 
			
		||||
1. Implemented simple lzmago tool
 | 
			
		||||
2. Tested tool against large 4.4G file
 | 
			
		||||
    - compression worked correctly; tested decompression with lzma
 | 
			
		||||
    - decompression hits a full buffer condition
 | 
			
		||||
   * compression worked correctly; tested decompression with lzma
 | 
			
		||||
   * decompression hits a full buffer condition
 | 
			
		||||
3. Fixed a bug in the compressor and wrote a test for it
 | 
			
		||||
4. Executed full cycle for 4.4 GB file; performance can be improved ;-)
 | 
			
		||||
 | 
			
		||||
### 2015-01-11
 | 
			
		||||
 | 
			
		||||
- Release v0.2 because of the working LZMA encoder and decoder
 | 
			
		||||
* Release v0.2 because of the working LZMA encoder and decoder
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/bits.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/bits.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/crc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/crc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										31
									
								
								vendor/github.com/ulikunitz/xz/format.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										31
									
								
								vendor/github.com/ulikunitz/xz/format.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
@@ -47,9 +47,9 @@ const HeaderLen = 12
 | 
			
		||||
// Constants for the checksum methods supported by xz.
 | 
			
		||||
const (
 | 
			
		||||
	None   byte = 0x0
 | 
			
		||||
	CRC32       = 0x1
 | 
			
		||||
	CRC64       = 0x4
 | 
			
		||||
	SHA256      = 0xa
 | 
			
		||||
	CRC32  byte = 0x1
 | 
			
		||||
	CRC64  byte = 0x4
 | 
			
		||||
	SHA256 byte = 0xa
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// errInvalidFlags indicates that flags are invalid.
 | 
			
		||||
@@ -569,22 +569,6 @@ func readFilters(r io.Reader, count int) (filters []filter, err error) {
 | 
			
		||||
	return []filter{f}, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// writeFilters writes the filters.
 | 
			
		||||
func writeFilters(w io.Writer, filters []filter) (n int, err error) {
 | 
			
		||||
	for _, f := range filters {
 | 
			
		||||
		p, err := f.MarshalBinary()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return n, err
 | 
			
		||||
		}
 | 
			
		||||
		k, err := w.Write(p)
 | 
			
		||||
		n += k
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return n, err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return n, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*** Index ***/
 | 
			
		||||
 | 
			
		||||
// record describes a block in the xz file index.
 | 
			
		||||
@@ -678,7 +662,7 @@ func writeIndex(w io.Writer, index []record) (n int64, err error) {
 | 
			
		||||
 | 
			
		||||
// readIndexBody reads the index from the reader. It assumes that the
 | 
			
		||||
// index indicator has already been read.
 | 
			
		||||
func readIndexBody(r io.Reader) (records []record, n int64, err error) {
 | 
			
		||||
func readIndexBody(r io.Reader, expectedRecordLen int) (records []record, n int64, err error) {
 | 
			
		||||
	crc := crc32.NewIEEE()
 | 
			
		||||
	// index indicator
 | 
			
		||||
	crc.Write([]byte{0})
 | 
			
		||||
@@ -695,6 +679,11 @@ func readIndexBody(r io.Reader) (records []record, n int64, err error) {
 | 
			
		||||
	if recLen < 0 || uint64(recLen) != u {
 | 
			
		||||
		return nil, n, errors.New("xz: record number overflow")
 | 
			
		||||
	}
 | 
			
		||||
	if recLen != expectedRecordLen {
 | 
			
		||||
		return nil, n, fmt.Errorf(
 | 
			
		||||
			"xz: index length is %d; want %d",
 | 
			
		||||
			recLen, expectedRecordLen)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// list of records
 | 
			
		||||
	records = make([]record, recLen)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/internal/hash/cyclic_poly.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/internal/hash/cyclic_poly.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/internal/hash/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/internal/hash/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/internal/hash/rabin_karp.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/internal/hash/rabin_karp.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/internal/hash/roller.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/internal/hash/roller.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/internal/xlog/xlog.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/internal/xlog/xlog.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										7
									
								
								vendor/github.com/ulikunitz/xz/lzma/bintree.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/github.com/ulikunitz/xz/lzma/bintree.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,14 +1,11 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
package lzma
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bufio"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"io"
 | 
			
		||||
	"unicode"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -349,6 +346,7 @@ func dumpX(x uint32) string {
 | 
			
		||||
	return string(a)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
// dumpNode writes a representation of the node v into the io.Writer.
 | 
			
		||||
func (t *binTree) dumpNode(w io.Writer, v uint32, indent int) {
 | 
			
		||||
	if v == null {
 | 
			
		||||
@@ -377,6 +375,7 @@ func (t *binTree) dump(w io.Writer) error {
 | 
			
		||||
	t.dumpNode(bw, t.root, 0)
 | 
			
		||||
	return bw.Flush()
 | 
			
		||||
}
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
func (t *binTree) distance(v uint32) int {
 | 
			
		||||
	dist := int(t.front) - int(v)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/ulikunitz/xz/lzma/bitops.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/ulikunitz/xz/lzma/bitops.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
@@ -18,6 +18,7 @@ var ntz32Table = [32]int8{
 | 
			
		||||
	30, 17, 8, 14, 29, 13, 28, 27,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
// ntz32 computes the number of trailing zeros for an unsigned 32-bit integer.
 | 
			
		||||
func ntz32(x uint32) int {
 | 
			
		||||
	if x == 0 {
 | 
			
		||||
@@ -26,6 +27,7 @@ func ntz32(x uint32) int {
 | 
			
		||||
	x = (x & -x) * ntz32Const
 | 
			
		||||
	return int(ntz32Table[x>>27])
 | 
			
		||||
}
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// nlz32 computes the number of leading zeros for an unsigned 32-bit integer.
 | 
			
		||||
func nlz32(x uint32) int {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/breader.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/breader.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/buffer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/buffer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/bytewriter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/bytewriter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/ulikunitz/xz/lzma/decoder.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/ulikunitz/xz/lzma/decoder.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
@@ -200,7 +200,7 @@ func (d *decoder) decompress() error {
 | 
			
		||||
		op, err := d.readOp()
 | 
			
		||||
		switch err {
 | 
			
		||||
		case nil:
 | 
			
		||||
			break
 | 
			
		||||
			// break
 | 
			
		||||
		case errEOS:
 | 
			
		||||
			d.eos = true
 | 
			
		||||
			if !d.rd.possiblyAtEnd() {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								vendor/github.com/ulikunitz/xz/lzma/decoderdict.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/ulikunitz/xz/lzma/decoderdict.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
@@ -126,10 +126,3 @@ func (d *decoderDict) Available() int { return d.buf.Available() }
 | 
			
		||||
 | 
			
		||||
// Read reads data from the buffer contained in the decoder dictionary.
 | 
			
		||||
func (d *decoderDict) Read(p []byte) (n int, err error) { return d.buf.Read(p) }
 | 
			
		||||
 | 
			
		||||
// Buffered returns the number of bytes currently buffered in the
 | 
			
		||||
// decoder dictionary.
 | 
			
		||||
func (d *decoderDict) buffered() int { return d.buf.Buffered() }
 | 
			
		||||
 | 
			
		||||
// Peek gets data from the buffer without advancing the rear index.
 | 
			
		||||
func (d *decoderDict) peek(p []byte) (n int, err error) { return d.buf.Peek(p) }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								vendor/github.com/ulikunitz/xz/lzma/directcodec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/ulikunitz/xz/lzma/directcodec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,24 +1,13 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
package lzma
 | 
			
		||||
 | 
			
		||||
import "fmt"
 | 
			
		||||
 | 
			
		||||
// directCodec allows the encoding and decoding of values with a fixed number
 | 
			
		||||
// of bits. The number of bits must be in the range [1,32].
 | 
			
		||||
type directCodec byte
 | 
			
		||||
 | 
			
		||||
// makeDirectCodec creates a directCodec. The function panics if the number of
 | 
			
		||||
// bits is not in the range [1,32].
 | 
			
		||||
func makeDirectCodec(bits int) directCodec {
 | 
			
		||||
	if !(1 <= bits && bits <= 32) {
 | 
			
		||||
		panic(fmt.Errorf("bits=%d out of range", bits))
 | 
			
		||||
	}
 | 
			
		||||
	return directCodec(bits)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Bits returns the number of bits supported by this codec.
 | 
			
		||||
func (dc directCodec) Bits() int {
 | 
			
		||||
	return int(dc)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										18
									
								
								vendor/github.com/ulikunitz/xz/lzma/distcodec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								vendor/github.com/ulikunitz/xz/lzma/distcodec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
@@ -20,8 +20,6 @@ const (
 | 
			
		||||
	posSlotBits = 6
 | 
			
		||||
	// number of align bits
 | 
			
		||||
	alignBits = 4
 | 
			
		||||
	// maximum position slot
 | 
			
		||||
	maxPosSlot = 63
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// distCodec provides encoding and decoding of distance values.
 | 
			
		||||
@@ -45,20 +43,6 @@ func (dc *distCodec) deepcopy(src *distCodec) {
 | 
			
		||||
	dc.alignCodec.deepcopy(&src.alignCodec)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// distBits returns the number of bits required to encode dist.
 | 
			
		||||
func distBits(dist uint32) int {
 | 
			
		||||
	if dist < startPosModel {
 | 
			
		||||
		return 6
 | 
			
		||||
	}
 | 
			
		||||
	// slot s > 3, dist d
 | 
			
		||||
	// s = 2(bits(d)-1) + bit(d, bits(d)-2)
 | 
			
		||||
	// s>>1 = bits(d)-1
 | 
			
		||||
	// bits(d) = 32-nlz32(d)
 | 
			
		||||
	// s>>1=31-nlz32(d)
 | 
			
		||||
	// n = 5 + (s>>1) = 36 - nlz32(d)
 | 
			
		||||
	return 36 - nlz32(dist)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// newDistCodec creates a new distance codec.
 | 
			
		||||
func (dc *distCodec) init() {
 | 
			
		||||
	for i := range dc.posSlotCodecs {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/encoder.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/encoder.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/ulikunitz/xz/lzma/encoderdict.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/ulikunitz/xz/lzma/encoderdict.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
@@ -19,7 +19,7 @@ type matcher interface {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// encoderDict provides the dictionary of the encoder. It includes an
 | 
			
		||||
// addtional buffer atop of the actual dictionary.
 | 
			
		||||
// additional buffer atop of the actual dictionary.
 | 
			
		||||
type encoderDict struct {
 | 
			
		||||
	buf      buffer
 | 
			
		||||
	m        matcher
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/hashtable.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/hashtable.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/header.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/header.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/ulikunitz/xz/lzma/header2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/ulikunitz/xz/lzma/header2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
@@ -264,7 +264,7 @@ type chunkState byte
 | 
			
		||||
// state
 | 
			
		||||
const (
 | 
			
		||||
	start chunkState = 'S'
 | 
			
		||||
	stop             = 'T'
 | 
			
		||||
	stop  chunkState = 'T'
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// errors for the chunk state handling
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										15
									
								
								vendor/github.com/ulikunitz/xz/lzma/lengthcodec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/github.com/ulikunitz/xz/lzma/lengthcodec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
@@ -56,19 +56,6 @@ func (lc *lengthCodec) init() {
 | 
			
		||||
	lc.high = makeTreeCodec(8)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// lBits gives the number of bits used for the encoding of the l value
 | 
			
		||||
// provided to the range encoder.
 | 
			
		||||
func lBits(l uint32) int {
 | 
			
		||||
	switch {
 | 
			
		||||
	case l < 8:
 | 
			
		||||
		return 4
 | 
			
		||||
	case l < 16:
 | 
			
		||||
		return 5
 | 
			
		||||
	default:
 | 
			
		||||
		return 10
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Encode encodes the length offset. The length offset l can be compute by
 | 
			
		||||
// subtracting minMatchLen (2) from the actual length.
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								vendor/github.com/ulikunitz/xz/lzma/literalcodec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/ulikunitz/xz/lzma/literalcodec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
@@ -123,10 +123,3 @@ const (
 | 
			
		||||
	minLP = 0
 | 
			
		||||
	maxLP = 4
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// minState and maxState define a range for the state values stored in
 | 
			
		||||
// the State values.
 | 
			
		||||
const (
 | 
			
		||||
	minState = 0
 | 
			
		||||
	maxState = 11
 | 
			
		||||
)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/matchalgorithm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/matchalgorithm.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										27
									
								
								vendor/github.com/ulikunitz/xz/lzma/operation.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								vendor/github.com/ulikunitz/xz/lzma/operation.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,11 +1,10 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
package lzma
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"unicode"
 | 
			
		||||
)
 | 
			
		||||
@@ -24,30 +23,6 @@ type match struct {
 | 
			
		||||
	n int
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// verify checks whether the match is valid. If that is not the case an
 | 
			
		||||
// error is returned.
 | 
			
		||||
func (m match) verify() error {
 | 
			
		||||
	if !(minDistance <= m.distance && m.distance <= maxDistance) {
 | 
			
		||||
		return errors.New("distance out of range")
 | 
			
		||||
	}
 | 
			
		||||
	if !(1 <= m.n && m.n <= maxMatchLen) {
 | 
			
		||||
		return errors.New("length out of range")
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// l return the l-value for the match, which is the difference of length
 | 
			
		||||
// n and 2.
 | 
			
		||||
func (m match) l() uint32 {
 | 
			
		||||
	return uint32(m.n - minMatchLen)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// dist returns the dist value for the match, which is one less of the
 | 
			
		||||
// distance stored in the match.
 | 
			
		||||
func (m match) dist() uint32 {
 | 
			
		||||
	return uint32(m.distance - minDistance)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Len returns the number of bytes matched.
 | 
			
		||||
func (m match) Len() int {
 | 
			
		||||
	return m.n
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/prob.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/prob.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/properties.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/properties.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								vendor/github.com/ulikunitz/xz/lzma/rangecodec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								vendor/github.com/ulikunitz/xz/lzma/rangecodec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
@@ -131,32 +131,6 @@ type rangeDecoder struct {
 | 
			
		||||
	code   uint32
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// init initializes the range decoder, by reading from the byte reader.
 | 
			
		||||
func (d *rangeDecoder) init() error {
 | 
			
		||||
	d.nrange = 0xffffffff
 | 
			
		||||
	d.code = 0
 | 
			
		||||
 | 
			
		||||
	b, err := d.br.ReadByte()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	if b != 0 {
 | 
			
		||||
		return errors.New("newRangeDecoder: first byte not zero")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for i := 0; i < 4; i++ {
 | 
			
		||||
		if err = d.updateCode(); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if d.code >= d.nrange {
 | 
			
		||||
		return errors.New("newRangeDecoder: d.code >= d.nrange")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// newRangeDecoder initializes a range decoder. It reads five bytes from the
 | 
			
		||||
// reader and therefore may return an error.
 | 
			
		||||
func newRangeDecoder(br io.ByteReader) (d *rangeDecoder, err error) {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/reader.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/reader.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								vendor/github.com/ulikunitz/xz/lzma/reader2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/ulikunitz/xz/lzma/reader2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
@@ -48,7 +48,6 @@ type Reader2 struct {
 | 
			
		||||
	chunkReader io.Reader
 | 
			
		||||
 | 
			
		||||
	cstate chunkState
 | 
			
		||||
	ctype  chunkType
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewReader2 creates a reader for an LZMA2 chunk sequence.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/github.com/ulikunitz/xz/lzma/state.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/ulikunitz/xz/lzma/state.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
@@ -53,12 +53,6 @@ func (s *state) Reset() {
 | 
			
		||||
	s.distCodec.init()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// initState initializes the state.
 | 
			
		||||
func initState(s *state, p Properties) {
 | 
			
		||||
	*s = state{Properties: p}
 | 
			
		||||
	s.Reset()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// newState creates a new state from the give Properties.
 | 
			
		||||
func newState(p Properties) *state {
 | 
			
		||||
	s := &state{Properties: p}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/treecodecs.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/treecodecs.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/writer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/writer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/writer2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzma/writer2.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzmafilter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/lzmafilter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/ulikunitz/xz/none-check.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/ulikunitz/xz/none-check.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										24
									
								
								vendor/github.com/ulikunitz/xz/reader.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								vendor/github.com/ulikunitz/xz/reader.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
@@ -26,13 +26,6 @@ type ReaderConfig struct {
 | 
			
		||||
	SingleStream bool
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// fill replaces all zero values with their default values.
 | 
			
		||||
func (c *ReaderConfig) fill() {
 | 
			
		||||
	if c.DictCap == 0 {
 | 
			
		||||
		c.DictCap = 8 * 1024 * 1024
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Verify checks the reader parameters for Validity. Zero values will be
 | 
			
		||||
// replaced by default values.
 | 
			
		||||
func (c *ReaderConfig) Verify() error {
 | 
			
		||||
@@ -165,22 +158,16 @@ func (c ReaderConfig) newStreamReader(xz io.Reader) (r *streamReader, err error)
 | 
			
		||||
	return r, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// errIndex indicates an error with the xz file index.
 | 
			
		||||
var errIndex = errors.New("xz: error in xz file index")
 | 
			
		||||
 | 
			
		||||
// readTail reads the index body and the xz footer.
 | 
			
		||||
func (r *streamReader) readTail() error {
 | 
			
		||||
	index, n, err := readIndexBody(r.xz)
 | 
			
		||||
	index, n, err := readIndexBody(r.xz, len(r.index))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		if err == io.EOF {
 | 
			
		||||
			err = io.ErrUnexpectedEOF
 | 
			
		||||
		}
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	if len(index) != len(r.index) {
 | 
			
		||||
		return fmt.Errorf("xz: index length is %d; want %d",
 | 
			
		||||
			len(index), len(r.index))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for i, rec := range r.index {
 | 
			
		||||
		if rec != index[i] {
 | 
			
		||||
			return fmt.Errorf("xz: record %d is %v; want %v",
 | 
			
		||||
@@ -265,7 +252,6 @@ type blockReader struct {
 | 
			
		||||
	n         int64
 | 
			
		||||
	hash      hash.Hash
 | 
			
		||||
	r         io.Reader
 | 
			
		||||
	err       error
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// newBlockReader creates a new block reader.
 | 
			
		||||
@@ -315,10 +301,6 @@ func (br *blockReader) record() record {
 | 
			
		||||
	return record{br.unpaddedSize(), br.uncompressedSize()}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// errBlockSize indicates that the size of the block in the block header
 | 
			
		||||
// is wrong.
 | 
			
		||||
var errBlockSize = errors.New("xz: wrong uncompressed size for block")
 | 
			
		||||
 | 
			
		||||
// Read reads data from the block.
 | 
			
		||||
func (br *blockReader) Read(p []byte) (n int, err error) {
 | 
			
		||||
	n, err = br.r.Read(p)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/github.com/ulikunitz/xz/writer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/ulikunitz/xz/writer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// Copyright 2014-2019 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Copyright 2014-2021 Ulrich Kunitz. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a BSD-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
@@ -6,6 +6,7 @@ package xz
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"hash"
 | 
			
		||||
	"io"
 | 
			
		||||
 | 
			
		||||
@@ -190,6 +191,9 @@ func (c WriterConfig) NewWriter(xz io.Writer) (w *Writer, err error) {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	data, err := w.h.MarshalBinary()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, fmt.Errorf("w.h.MarshalBinary(): error %w", err)
 | 
			
		||||
	}
 | 
			
		||||
	if _, err = xz.Write(data); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user