From 68debff5ec0e9c1e3ae18db6300d3f12d07e3259 Mon Sep 17 00:00:00 2001 From: Tom Cherry Date: Mon, 17 Jun 2019 14:19:39 -0700 Subject: [PATCH] Actually make fs_path_config / fs_path_config_from_file private No one outside of libcutils is using these structs and we don't want to leak them as they are private. Test: build Change-Id: I1c95564a9843c9155a333334008cbff7c7ff1f51 --- libcutils/fs_config.cpp | 3 +++ libcutils/fs_config.h | 37 +++++++++++++++++++++++++++ libcutils/fs_config_test.cpp | 3 ++- libcutils/include/private/fs_config.h | 33 ++---------------------- 4 files changed, 44 insertions(+), 32 deletions(-) create mode 100644 libcutils/fs_config.h diff --git a/libcutils/fs_config.cpp b/libcutils/fs_config.cpp index 5b5f2eb46..897a16941 100644 --- a/libcutils/fs_config.cpp +++ b/libcutils/fs_config.cpp @@ -39,6 +39,8 @@ #include #include +#include "fs_config.h" + #ifndef O_BINARY #define O_BINARY 0 #endif @@ -47,6 +49,7 @@ using android::base::EndsWith; using android::base::StartsWith; #define ALIGN(x, alignment) (((x) + ((alignment)-1)) & ~((alignment)-1)) +#define CAP_MASK_LONG(cap_name) (1ULL << (cap_name)) // Rules for directories. // These rules are applied based on "first match", so they diff --git a/libcutils/fs_config.h b/libcutils/fs_config.h new file mode 100644 index 000000000..66ad48bc4 --- /dev/null +++ b/libcutils/fs_config.h @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include + +// Binary format for the runtime /etc/fs_config_(dirs|files) filesystem override files. +struct fs_path_config_from_file { + uint16_t len; + uint16_t mode; + uint16_t uid; + uint16_t gid; + uint64_t capabilities; + char prefix[]; +} __attribute__((__aligned__(sizeof(uint64_t)))); + +struct fs_path_config { + unsigned mode; + unsigned uid; + unsigned gid; + uint64_t capabilities; + const char* prefix; +}; diff --git a/libcutils/fs_config_test.cpp b/libcutils/fs_config_test.cpp index c26315fea..9627152a7 100644 --- a/libcutils/fs_config_test.cpp +++ b/libcutils/fs_config_test.cpp @@ -25,7 +25,8 @@ #include #include -#include + +#include "fs_config.h" extern const fs_path_config* __for_testing_only__android_dirs; extern const fs_path_config* __for_testing_only__android_files; diff --git a/libcutils/include/private/fs_config.h b/libcutils/include/private/fs_config.h index 603cf1a6a..8a9a1ffd7 100644 --- a/libcutils/include/private/fs_config.h +++ b/libcutils/include/private/fs_config.h @@ -19,44 +19,17 @@ ** by the device side of adb. */ -#ifndef _LIBS_CUTILS_PRIVATE_FS_CONFIG_H -#define _LIBS_CUTILS_PRIVATE_FS_CONFIG_H +#pragma once #include #include -#include #if defined(__BIONIC__) #include #else // defined(__BIONIC__) -#include "android_filesystem_capability.h" +#include #endif // defined(__BIONIC__) -#define CAP_MASK_LONG(cap_name) (1ULL << (cap_name)) - -/* - * binary format for the runtime /etc/fs_config_(dirs|files) - * filesystem override files. - */ - -/* The following structure is stored little endian */ -struct fs_path_config_from_file { - uint16_t len; - uint16_t mode; - uint16_t uid; - uint16_t gid; - uint64_t capabilities; - char prefix[]; -} __attribute__((__aligned__(sizeof(uint64_t)))); - -struct fs_path_config { - unsigned mode; - unsigned uid; - unsigned gid; - uint64_t capabilities; - const char* prefix; -}; - /* Rules for directories and files has moved to system/code/libcutils/fs_config.c */ __BEGIN_DECLS @@ -75,5 +48,3 @@ void fs_config(const char* path, int dir, const char* target_out_path, unsigned* unsigned* mode, uint64_t* capabilities); __END_DECLS - -#endif /* _LIBS_CUTILS_PRIVATE_FS_CONFIG_H */