Skip to content

Conversation

@Mashimiao
Copy link

Signed-off-by: Ma Shimiao [email protected]

@Mashimiao
Copy link
Author

ping @opencontainers/runtime-tools-maintainers

@liangchenye
Copy link
Member

liangchenye commented Jan 3, 2017

LGTM

Approved with PullApprove

@liangchenye liangchenye mentioned this pull request Jan 3, 2017
76 tasks
}

func validateDefaultSymlinks(spec *rspec.Spec) error {
logrus.Debugf("validating linux default Symbolic links")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Symbolic -> symbolic

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed, thanks

@Mashimiao Mashimiao force-pushed the runtime-test-linux-default-symboliclink-validation branch from 22706e1 to da25004 Compare January 5, 2017 01:10
@Mashimiao
Copy link
Author

@mrunalp @liangchenye PTAL

@mrunalp
Copy link
Contributor

mrunalp commented Jan 5, 2017

LGTM

Approved with PullApprove

1 similar comment
@hqhq
Copy link
Contributor

hqhq commented Jan 6, 2017

LGTM

Approved with PullApprove

@hqhq hqhq merged commit 1bfd892 into opencontainers:master Jan 6, 2017
wking added a commit to wking/ocitools-v2 that referenced this pull request Apr 6, 2018
We've been using ModeSymlink as the mask since the check landed in
da25004 (runtimetest: add linux default symbolic link validation,
2016-11-30, opencontainers#284).  POSIX provides S_IS*(m) macros to portably
interpret the mode type, but does not define values for each type [2].
Alban pointed out that st_mode is not a bitfield on Linux [1].  For
example, Linux defines [3]:

  S_IFBLK 060000
  S_IFDIR 040000
  S_IFCHR 020000

So 'm&S_IFCHR == S_IFCHR', for example, would succeed for both
character and block devices.  Go translates the system values to a
platform-agnostic bitfield [4], so the previous approach works on Go.
But it may be confusing for people used to the native non-bitfield
mode, so this commit moves us to an approach that does not rely on
Go's using a bitfield.

[1]: opencontainers#308 (comment)
[2]: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_stat.h.html
[3]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/stat.h?h=v4.16#n9
[4]: https://github.com/golang/go/blob/b0d437f866eb8987cde7e6550cacd77876f36d4b/src/os/types.go#L45

Signed-off-by: W. Trevor King <[email protected]>
wking added a commit to wking/ocitools-v2 that referenced this pull request Apr 6, 2018
We've been using ModeSymlink as the mask since the check landed in
da25004 (runtimetest: add linux default symbolic link validation,
2016-11-30, opencontainers#284).  POSIX provides S_IS*(m) macros to portably
interpret the mode type, but does not define values for each type [2].
Alban pointed out that st_mode is not a bitfield on Linux [1].  For
example, Linux defines [3]:

  S_IFBLK 060000
  S_IFDIR 040000
  S_IFCHR 020000

So 'm&S_IFCHR == S_IFCHR', for example, would succeed for both
character and block devices.  Go translates the system values to a
platform-agnostic bitfield [4], so the previous approach works on Go.
But it may be confusing for people used to the native non-bitfield
mode, so this commit moves us to an approach that does not rely on
Go's using a bitfield.

[1]: opencontainers#308 (comment)
[2]: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_stat.h.html
[3]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/stat.h?h=v4.16#n9
[4]: https://github.com/golang/go/blob/b0d437f866eb8987cde7e6550cacd77876f36d4b/src/os/types.go#L45

Signed-off-by: W. Trevor King <[email protected]>
wking added a commit to wking/ocitools-v2 that referenced this pull request Apr 6, 2018
We've been using ModeSymlink as the mask since the check landed in
da25004 (runtimetest: add linux default symbolic link validation,
2016-11-30, opencontainers#284).  POSIX provides S_IS*(m) macros to portably
interpret the mode type, but does not define values for each type [2].
Alban pointed out that st_mode is not a bitfield on Linux [1].  For
example, Linux defines [3]:

  S_IFBLK 060000
  S_IFDIR 040000
  S_IFCHR 020000

So 'm&S_IFCHR == S_IFCHR', for example, would succeed for both
character and block devices.  Go translates the system values to a
platform-agnostic bitfield [4], so the previous approach works on Go.
But it may be confusing for people used to the native non-bitfield
mode, so this commit moves us to an approach that does not rely on
Go's using a bitfield.

[1]: opencontainers#308 (comment)
[2]: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_stat.h.html
[3]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/stat.h?h=v4.16#n9
[4]: https://github.com/golang/go/blob/b0d437f866eb8987cde7e6550cacd77876f36d4b/src/os/types.go#L45

Signed-off-by: W. Trevor King <[email protected]>
wking added a commit to wking/ocitools-v2 that referenced this pull request Apr 6, 2018
We've been using ModeSymlink as the mask since the check landed in
da25004 (runtimetest: add linux default symbolic link validation,
2016-11-30, opencontainers#284).  POSIX provides S_IS*(m) macros to portably
interpret the mode type, but does not define values for each type [2].
Alban pointed out that st_mode is not a bitfield on Linux [1].  For
example, Linux defines [3]:

  S_IFBLK 060000
  S_IFDIR 040000
  S_IFCHR 020000

So 'm&S_IFCHR == S_IFCHR', for example, would succeed for both
character and block devices.  Go translates the system values to a
platform-agnostic bitfield [4], so the previous approach works on Go.
But it may be confusing for people used to the native non-bitfield
mode, so this commit moves us to an approach that does not rely on
Go's using a bitfield.

[1]: opencontainers#308 (comment)
[2]: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_stat.h.html
[3]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/stat.h?h=v4.16#n9
[4]: https://github.com/golang/go/blob/b0d437f866eb8987cde7e6550cacd77876f36d4b/src/os/types.go#L45

Signed-off-by: W. Trevor King <[email protected]>
wking added a commit to wking/ocitools-v2 that referenced this pull request Apr 6, 2018
We've been using ModeSymlink as the mask since the check landed in
da25004 (runtimetest: add linux default symbolic link validation,
2016-11-30, opencontainers#284).  POSIX provides S_IS*(m) macros to portably
interpret the mode type, but does not define values for each type [2].
Alban pointed out that st_mode is not a bitfield on Linux [1].  For
example, Linux defines [3]:

  S_IFBLK 060000
  S_IFDIR 040000
  S_IFCHR 020000

So 'm&S_IFCHR == S_IFCHR', for example, would succeed for both
character and block devices.  Go translates the system values to a
platform-agnostic bitfield [4], so the previous approach works on Go.
But it may be confusing for people used to the native non-bitfield
mode, so this commit moves us to an approach that does not rely on
Go's using a bitfield.

[1]: opencontainers#308 (comment)
[2]: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_stat.h.html
[3]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/stat.h?h=v4.16#n9
[4]: https://github.com/golang/go/blob/b0d437f866eb8987cde7e6550cacd77876f36d4b/src/os/types.go#L45

Signed-off-by: W. Trevor King <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants