> On March 12, 2014, 11:36 p.m., Benjamin Hindman wrote:
> > 3rdparty/libprocess/3rdparty/stout/include/stout/os/permissions.hpp, line 23
> > <https://reviews.apache.org/r/19093/diff/2/?file=517092#file517092line23>
> >
> > How about introducing a new Permissions struct here?
> >
> > struct Permissions
> > {
> > explicit Permissions(mode_t mode)
> > {
> > owner.readable = mode & magic_to_determine_if_mode_is_readable;
> > owner.writable = mode & magic_to_determine_if_mode_is_writable;
> > owner.executable = mode & magic_to_determine_if_mode_is_executable;
> > ...
> > }
> >
> > struct {
> > bool readable;
> > bool writable;
> > bool executable;
> > } owner;
> >
> > struct {
> > bool readable;
> > bool writable;
> > bool executable;
> > } group;
> >
> > struct {
> > bool readable;
> > bool writable;
> > bool executable;
> > } others;
> >
> > bool setuid;
> > bool setgid;
> > };
> >
> > Then in code you could do:
> >
> > Try<os::Permissions> permissions = os::permissions(path);
> >
> > if (!permissions.isError()) {
> > if (permissions.get().others.readable ||
> > permissions.get().others.writable ||
> > permissions.get().others.executable) {
> > LOG(WARNING) << "Permissions on credentials file are insufficient!";
> > }
> > }
> >
> > The slight downside here is that we'll be spending some CPU cycles
> > constructing a Permissions object, but that's highly unlikely to be a
> > performance issue. The upside here is the code becomes very explicit and
> > therefore maintainable!
What about sharing the struct definition across 'owner' 'group' and 'others'?
struct {
bool readable;
bool writable;
bool executable;
} owner, group, others;
- Ben
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19093/#review37012
-----------------------------------------------------------
On March 12, 2014, 11:07 a.m., Isabel Jimenez wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19093/
> -----------------------------------------------------------
>
> (Updated March 12, 2014, 11:07 a.m.)
>
>
> Review request for mesos, Benjamin Hindman and Vinod Kone.
>
>
> Bugs: MESOS-1087
> https://issues.apache.org/jira/browse/MESOS-1087
>
>
> Repository: mesos-git
>
>
> Description
> -------
>
> Adding permissions check on credentials file and deleting TODO comment
>
>
> Diffs
> -----
>
> 3rdparty/libprocess/3rdparty/stout/Makefile.am 1075b46
> 3rdparty/libprocess/3rdparty/stout/include/stout/os.hpp 3f475a4
> 3rdparty/libprocess/3rdparty/stout/include/stout/os/permissions.hpp
> PRE-CREATION
> src/master/master.cpp 2a40333
>
> Diff: https://reviews.apache.org/r/19093/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Isabel Jimenez
>
>