listing with prefix prefixed with '/' should be ignored (#11268)

fixes #11265
master
Harshavardhana 4 years ago committed by GitHub
parent b97d53b29c
commit 44dff36ff7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 0
      cmd/erasure-server-pool.go
  2. 4
      cmd/metacache-server-pool.go
  3. 1
      cmd/object-api-listobjects_test.go

@ -21,6 +21,7 @@ import (
"errors"
"io"
"path"
"strings"
"sync"
"time"
@ -53,11 +54,10 @@ func (z *erasureServerPools) listPath(ctx context.Context, o listPathOptions) (e
}
// For delimiter and prefix as '/' we do not list anything at all
// since according to s3 spec we stop at the 'delimiter'
// along // with the prefix. On a flat namespace with 'prefix'
// as '/' we don't have any entries, since all the keys are
// of form 'keyName/...'
if o.Separator == SlashSeparator && o.Prefix == SlashSeparator {
if strings.HasPrefix(o.Prefix, SlashSeparator) {
return entries, io.EOF
}

@ -531,6 +531,7 @@ func testListObjects(obj ObjectLayer, instanceType string, t1 TestErrHandler) {
{"test-bucket-list-object", "new", "", "", 4, resultCases[5], nil, true},
{"test-bucket-list-object", "new", "", "", 5, resultCases[5], nil, true},
{"test-bucket-list-object", "obj", "", "", 3, resultCases[6], nil, true},
{"test-bucket-list-object", "/obj", "", "", 0, ListObjectsInfo{}, nil, true},
// Testing with prefix and truncation (29-30).
{"test-bucket-list-object", "new", "", "", 1, resultCases[7], nil, true},
{"test-bucket-list-object", "obj", "", "", 2, resultCases[8], nil, true},

Loading…
Cancel
Save