Skip to content

Commit 1ab06ef

Browse files
authored
Merge pull request kubernetes#124531 from irsl/master
gitRepo volume: directory must be max 1 level deep
2 parents 8dbeaa5 + c7846fd commit 1ab06ef

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

pkg/volume/git_repo/git_repo.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,12 @@ func validateVolume(src *v1.GitRepoVolumeSource) error {
261261
if err := validateNonFlagArgument(src.Directory, "directory"); err != nil {
262262
return err
263263
}
264+
if (src.Revision != "") && (src.Directory != "") {
265+
cleanedDir := filepath.Clean(src.Directory)
266+
if strings.Contains(cleanedDir, "/") || (strings.Contains(cleanedDir, "\\")) {
267+
return fmt.Errorf("%q is not a valid directory, it must not contain a directory separator", src.Directory)
268+
}
269+
}
264270
return nil
265271
}
266272

pkg/volume/git_repo/git_repo_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,20 @@ func TestPlugin(t *testing.T) {
267267
},
268268
isExpectedFailure: true,
269269
},
270+
{
271+
name: "invalid-revision-directory-combo",
272+
vol: &v1.Volume{
273+
Name: "vol1",
274+
VolumeSource: v1.VolumeSource{
275+
GitRepo: &v1.GitRepoVolumeSource{
276+
Repository: gitURL,
277+
Revision: "main",
278+
Directory: "foo/bar",
279+
},
280+
},
281+
},
282+
isExpectedFailure: true,
283+
},
270284
}
271285

272286
for _, scenario := range scenarios {

0 commit comments

Comments
 (0)