forked from TrueCloudLab/restic
convert uid/gid -1 to 0 only in 32-bit tar dump
Only for a 32-bit build of restic, convert a uid or gid value of -1 to 0.
This commit is contained in:
parent
a86a56cf3b
commit
3b516d4b70
2 changed files with 7 additions and 9 deletions
|
@ -1,12 +1,9 @@
|
|||
Bugfix: fix restic dump of tar file with 32-bit binary
|
||||
|
||||
In restic up to 0.14.0, the restic dump from a 32-bit binary of a
|
||||
snapshot of standard input that was created in Windows has as a
|
||||
result a tar file whose content has a negative uid and gid. As a
|
||||
result, gnu tar exits with failure status whenever it tries to
|
||||
access such a tar file. With this fix, the tar file that is now
|
||||
dumped from a 32-bit binary has content with non-negative uid and
|
||||
gid.
|
||||
When using a 32-bit build of restic, the `restic dump` command could in some
|
||||
cases create tar files containing negative uid and gid. These files cannot be
|
||||
read by gnu tar. This corner case especially applies to backups from stdin on Windows.
|
||||
We have changed the dump command to create valid tar files in this case.
|
||||
|
||||
https://github.com/restic/restic/issues/4103
|
||||
https://github.com/restic/restic/pull/4104
|
||||
|
|
|
@ -38,9 +38,10 @@ const (
|
|||
cISVTX = 0o1000 // Save text (sticky bit)
|
||||
)
|
||||
|
||||
// substitute a uid or gid of -1 (which was converted to 2^32 - 1) with zero
|
||||
// in a 32-bit build of restic:
|
||||
// substitute a uid or gid of -1 (which was converted to 2^32 - 1) with 0
|
||||
func tarIdentifier(id uint32) int {
|
||||
if int32(id) == -1 {
|
||||
if int(id) == -1 {
|
||||
return 0
|
||||
}
|
||||
return int(id)
|
||||
|
|
Loading…
Reference in a new issue