* Enable overwriting of links (solves #351) * add integration test to check extraction of images with replaced hardlinks * Prevent following symlinks during extracting normal files This fixes #359, #361, #362.
This commit is contained in:
parent
bb0df68e50
commit
59cb0ebec9
|
|
@ -0,0 +1 @@
|
|||
FROM jboss/base-jdk@sha256:70d956f632c26d1f1df57cbb99870a6141cfe470de0eb2d51bccd44929df9367
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
FROM tenstartups/alpine@sha256:31dc8b12e0f73a1de899146c3663644b7668f8fd198cfe9b266886c9abfa944b
|
||||
RUN pwd
|
||||
|
|
@ -186,6 +186,13 @@ func extractFile(dest string, hdr *tar.Header, tr io.Reader) error {
|
|||
return err
|
||||
}
|
||||
}
|
||||
// Check if something already exists at path (symlinks etc.)
|
||||
// If so, delete it
|
||||
if FilepathExists(path) {
|
||||
if err := os.Remove(path); err != nil {
|
||||
return errors.Wrapf(err, "error removing %s to make way for new file.", path)
|
||||
}
|
||||
}
|
||||
currFile, err := os.Create(path)
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
@ -220,6 +227,14 @@ func extractFile(dest string, hdr *tar.Header, tr io.Reader) error {
|
|||
if err := os.MkdirAll(dir, 0755); err != nil {
|
||||
return err
|
||||
}
|
||||
// Check if something already exists at path
|
||||
// If so, delete it
|
||||
if FilepathExists(path) {
|
||||
if err := os.Remove(path); err != nil {
|
||||
return errors.Wrapf(err, "error removing %s to make way for new link", hdr.Name)
|
||||
}
|
||||
}
|
||||
|
||||
if err := os.Link(filepath.Clean(filepath.Join("/", hdr.Linkname)), path); err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue