1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/pkg
Aaron Lehmann 90f8d1b675 fileutils: Fix incorrect handling of "**/foo" pattern
(*PatternMatcher).Matches includes a special case for when the pattern
matches a parent dir, even though it doesn't match the current path.
However, it assumes that the parent dir which would match the pattern
must have the same number of separators as the pattern itself. This
doesn't hold true with a patern like "**/foo". A file foo/bar would have
len(parentPathDirs) == 1, which is less than the number of path
len(pattern.dirs) == 2... therefore this check would be skipped.

Given that "**/foo" matches "foo", I think it's a bug that the "parent
subdir matches" check is being skipped in this case.

It seems safer to loop over the parent subdirs and check each against
the pattern. It's possible there is a safe optimization to check only a
certain subset, but the existing logic seems unsafe.

Signed-off-by: Aaron Lehmann <alehmann@netflix.com>
2021-07-26 11:28:10 -07:00
..
aaparser Also trim "~..." from AppArmor versions 2020-10-08 17:03:51 -07:00
archive Merge pull request #42515 from geaaru/permit-override-name 2021-06-24 21:01:08 +02:00
authorization Update documentation links 2021-02-25 12:11:50 +01:00
broadcaster
capabilities
chrootarchive replace uses of deprecated containerd/sys.RunningInUserNS() 2021-06-18 11:01:24 +02:00
containerfs replace pkg/symlink with github.com/moby/sys/symlink 2020-11-03 11:17:12 +01:00
devicemapper reformat "nolint" comments 2021-06-10 13:03:42 +02:00
directory TestMoveToSubdir: use sort.Strings() (gosimple) 2019-09-18 12:55:45 +02:00
discovery bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-11 00:06:42 +01:00
dmesg Use Klogctl from x/sys/unix to read Linux kernel log 2019-08-22 08:25:13 +02:00
filenotify TestPollerEvent: fix filemode (staticcheck) 2019-09-18 12:57:56 +02:00
fileutils fileutils: Fix incorrect handling of "**/foo" pattern 2021-07-26 11:28:10 -07:00
fsutils
homedir pkg/homedir: clarify Get() docs wrt static linking 2019-10-24 16:39:24 -07:00
idtools pkg/system: deprecate some consts and move them to pkg/idtools 2021-06-18 23:16:15 +02:00
ioutils bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-11 00:06:42 +01:00
jsonmessage gosimple: S1039: unnecessary use of fmt.Sprintf 2021-06-10 13:03:27 +02:00
locker replace pkg/locker with github.com/moby/locker 2020-09-10 22:15:40 +02:00
longpath
loopback reformat "nolint" comments 2021-06-10 13:03:42 +02:00
mount Separate non-Windows mount code from common code 2020-11-08 23:15:15 +11:00
namesgenerator updated names-generator.go for alphabetization 2021-07-13 23:52:51 +02:00
parsers pkg/parsers: remove uses of mattn/go-shellwords 2020-07-14 14:03:10 +02:00
pidfile Allow system.MkDirAll() to be used as drop-in for os.MkDirAll() 2019-08-08 15:05:49 +02:00
platform Use unix.Uname instead of shelling out to uname on darwin/freebsd 2019-09-03 22:43:16 +02:00
plugingetter
plugins Reduce TestClientWithRequestTimeout flakiness 2021-06-29 23:53:23 +02:00
pools bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-11 00:06:42 +01:00
progress pkg/progress: normalize comment formatting 2019-11-27 15:41:23 +01:00
pubsub docker stats: fix 'panic: close of closed channel' 2020-10-24 11:48:56 +08:00
reexec bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-11 00:06:42 +01:00
signal replace pkg/signal with moby/sys/signal v0.5.0 2021-07-23 09:32:54 +02:00
stack pkg/signal: move signal.DumpStacks() to a separate package 2021-07-15 18:09:43 +02:00
stdcopy
streamformatter bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-11 00:06:42 +01:00
stringid
symlink replace pkg/symlink with github.com/moby/sys/symlink 2020-11-03 11:17:12 +01:00
sysinfo pkg/sysinfo: use correct name for AppArmor in t.Skip() 2021-07-14 23:10:13 +02:00
system pkg/system: deprecate some consts and move them to pkg/idtools 2021-06-18 23:16:15 +02:00
tailfile bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-11 00:06:42 +01:00
tarsum bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-11 00:06:42 +01:00
term pkg/term: vendor moby/term and make pkg/term an alias 2020-04-21 16:29:19 +02:00
truncindex
urlutil
useragent
README.md

pkg/ is a collection of utility packages used by the Moby project without being specific to its internals.

Utility packages are kept separate from the moby core codebase to keep it as small and concise as possible. If some utilities grow larger and their APIs stabilize, they may be moved to their own repository under the Moby organization, to facilitate re-use by other projects. However that is not the priority.

The directory pkg is named after the same directory in the camlistore project. Since Brad is a core Go maintainer, we thought it made sense to copy his methods for organizing Go code :) Thanks Brad!

Because utility packages are small and neatly separated from the rest of the codebase, they are a good place to start for aspiring maintainers and contributors. Get in touch if you want to help maintain them!