Re: [PATCH] libsemanage: Add support for listing fcontext.homedirs file

2017-10-04 Thread Vit Mojzis



On 4.10.2017 16:07, Stephen Smalley wrote:

On Tue, 2017-10-03 at 11:57 +0200, Vit Mojzis wrote:

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1409813

These all look good to me now.  Could you please re-post them all with
Signed-off-by: lines, and then we'll merge them in a couple of days
barring any other concerns?


Sure. Thank you, I appreciate your help.




---
  libsemanage/include/semanage/fcontexts_policy.h |  4 
  libsemanage/src/direct_api.c|  7 +++
  libsemanage/src/fcontexts_policy.c  |  8 
  libsemanage/src/handle.h| 19 +
--
  4 files changed, 32 insertions(+), 6 deletions(-)

diff --git a/libsemanage/include/semanage/fcontexts_policy.h
b/libsemanage/include/semanage/fcontexts_policy.h
index a50db2b..199a1e1 100644
--- a/libsemanage/include/semanage/fcontexts_policy.h
+++ b/libsemanage/include/semanage/fcontexts_policy.h
@@ -26,4 +26,8 @@ extern int semanage_fcontext_list(semanage_handle_t
* handle,
  semanage_fcontext_t *** records,
  unsigned int *count);
  
+extern int semanage_fcontext_list_homedirs(semanage_handle_t *

handle,
+ semanage_fcontext_t *** records,
+ unsigned int *count);
+
  #endif
diff --git a/libsemanage/src/direct_api.c
b/libsemanage/src/direct_api.c
index 971a08f..00ad820 100644
--- a/libsemanage/src/direct_api.c
+++ b/libsemanage/src/direct_api.c
@@ -210,6 +210,12 @@ int semanage_direct_connect(semanage_handle_t *
sh)
 semanage_fcontext_dbase_local(s
h)) < 0)
goto err;
  
+	if (fcontext_file_dbase_init(sh,

+semanage_path(SEMANAGE_ACTIVE,
SEMANAGE_STORE_FC_HOMEDIRS),
+semanage_path(SEMANAGE_TMP,
SEMANAGE_STORE_FC_HOMEDIRS),
+semanage_fcontext_dbase_homedir
s(sh)) < 0)
+   goto err;
+
if (seuser_file_dbase_init(sh,
   semanage_path(SEMANAGE_ACTIVE,
 SEMANAGE_SEUSERS_LO
CAL),
@@ -349,6 +355,7 @@ static int
semanage_direct_disconnect(semanage_handle_t * sh)
iface_file_dbase_release(semanage_iface_dbase_local(sh));
bool_file_dbase_release(semanage_bool_dbase_local(sh));
fcontext_file_dbase_release(semanage_fcontext_dbase_local(sh
));
+   fcontext_file_dbase_release(semanage_fcontext_dbase_homedirs
(sh));
seuser_file_dbase_release(semanage_seuser_dbase_local(sh));
node_file_dbase_release(semanage_node_dbase_local(sh));
  
diff --git a/libsemanage/src/fcontexts_policy.c

b/libsemanage/src/fcontexts_policy.c
index 0b063b1..98490ab 100644
--- a/libsemanage/src/fcontexts_policy.c
+++ b/libsemanage/src/fcontexts_policy.c
@@ -51,3 +51,11 @@ int semanage_fcontext_list(semanage_handle_t *
handle,
dbase_config_t *dconfig =
semanage_fcontext_dbase_policy(handle);
return dbase_list(handle, dconfig, records, count);
  }
+
+int semanage_fcontext_list_homedirs(semanage_handle_t * handle,
+  semanage_fcontext_t *** records, unsigned
int *count)
+{
+
+   dbase_config_t *dconfig =
semanage_fcontext_dbase_homedirs(handle);
+   return dbase_list(handle, dconfig, records, count);
+}
diff --git a/libsemanage/src/handle.h b/libsemanage/src/handle.h
index 889871d..1780ac8 100644
--- a/libsemanage/src/handle.h
+++ b/libsemanage/src/handle.h
@@ -79,7 +79,7 @@ struct semanage_handle {
struct semanage_policy_table *funcs;
  
  	/* Object databases */

-#define DBASE_COUNT  23
+#define DBASE_COUNT  24
  
  /* Local modifications */

  #define DBASE_LOCAL_USERS_BASE  0
@@ -102,13 +102,14 @@ struct semanage_handle {
  #define DBASE_POLICY_INTERFACES  15
  #define DBASE_POLICY_BOOLEANS16
  #define DBASE_POLICY_FCONTEXTS   17
-#define DBASE_POLICY_SEUSERS 18
-#define DBASE_POLICY_NODES   19
-#define DBASE_POLICY_IBPKEYS 20
-#define DBASE_POLICY_IBENDPORTS  21
+#define DBASE_POLICY_FCONTEXTS_H 18
+#define DBASE_POLICY_SEUSERS 19
+#define DBASE_POLICY_NODES   20
+#define DBASE_POLICY_IBPKEYS 21
+#define DBASE_POLICY_IBENDPORTS  22
  
  /* Active kernel policy */

-#define DBASE_ACTIVE_BOOLEANS22
+#define DBASE_ACTIVE_BOOLEANS23
dbase_config_t dbase[DBASE_COUNT];
  };
  
@@ -236,6 +237,12 @@ static inline

  }
  
  static inline

+dbase_config_t *
semanage_fcontext_dbase_homedirs(semanage_handle_t * handle)
+{
+   return &handle->dbase[DBASE_POLICY_FCONTEXTS_H];
+}
+
+static inline
  dbase_config_t * semanage_seuser_dbase_policy(semanage_handle_t
* handle)
  {
return &handle->dbase[DBASE_POLICY_SEUSERS];




Re: [PATCH] libsemanage: Add support for listing fcontext.homedirs file

2017-10-04 Thread Stephen Smalley
On Tue, 2017-10-03 at 11:57 +0200, Vit Mojzis wrote:
> Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1409813

These all look good to me now.  Could you please re-post them all with
Signed-off-by: lines, and then we'll merge them in a couple of days
barring any other concerns?

> ---
>  libsemanage/include/semanage/fcontexts_policy.h |  4 
>  libsemanage/src/direct_api.c|  7 +++
>  libsemanage/src/fcontexts_policy.c  |  8 
>  libsemanage/src/handle.h| 19 +
> --
>  4 files changed, 32 insertions(+), 6 deletions(-)
> 
> diff --git a/libsemanage/include/semanage/fcontexts_policy.h
> b/libsemanage/include/semanage/fcontexts_policy.h
> index a50db2b..199a1e1 100644
> --- a/libsemanage/include/semanage/fcontexts_policy.h
> +++ b/libsemanage/include/semanage/fcontexts_policy.h
> @@ -26,4 +26,8 @@ extern int semanage_fcontext_list(semanage_handle_t
> * handle,
>     semanage_fcontext_t *** records,
>     unsigned int *count);
>  
> +extern int semanage_fcontext_list_homedirs(semanage_handle_t *
> handle,
> +   semanage_fcontext_t *** records,
> +   unsigned int *count);
> +
>  #endif
> diff --git a/libsemanage/src/direct_api.c
> b/libsemanage/src/direct_api.c
> index 971a08f..00ad820 100644
> --- a/libsemanage/src/direct_api.c
> +++ b/libsemanage/src/direct_api.c
> @@ -210,6 +210,12 @@ int semanage_direct_connect(semanage_handle_t *
> sh)
>    semanage_fcontext_dbase_local(s
> h)) < 0)
>   goto err;
>  
> + if (fcontext_file_dbase_init(sh,
> +  semanage_path(SEMANAGE_ACTIVE,
> SEMANAGE_STORE_FC_HOMEDIRS),
> +  semanage_path(SEMANAGE_TMP,
> SEMANAGE_STORE_FC_HOMEDIRS),
> +  semanage_fcontext_dbase_homedir
> s(sh)) < 0)
> + goto err;
> +
>   if (seuser_file_dbase_init(sh,
>      semanage_path(SEMANAGE_ACTIVE,
>    SEMANAGE_SEUSERS_LO
> CAL),
> @@ -349,6 +355,7 @@ static int
> semanage_direct_disconnect(semanage_handle_t * sh)
>   iface_file_dbase_release(semanage_iface_dbase_local(sh));
>   bool_file_dbase_release(semanage_bool_dbase_local(sh));
>   fcontext_file_dbase_release(semanage_fcontext_dbase_local(sh
> ));
> + fcontext_file_dbase_release(semanage_fcontext_dbase_homedirs
> (sh));
>   seuser_file_dbase_release(semanage_seuser_dbase_local(sh));
>   node_file_dbase_release(semanage_node_dbase_local(sh));
>  
> diff --git a/libsemanage/src/fcontexts_policy.c
> b/libsemanage/src/fcontexts_policy.c
> index 0b063b1..98490ab 100644
> --- a/libsemanage/src/fcontexts_policy.c
> +++ b/libsemanage/src/fcontexts_policy.c
> @@ -51,3 +51,11 @@ int semanage_fcontext_list(semanage_handle_t *
> handle,
>   dbase_config_t *dconfig =
> semanage_fcontext_dbase_policy(handle);
>   return dbase_list(handle, dconfig, records, count);
>  }
> +
> +int semanage_fcontext_list_homedirs(semanage_handle_t * handle,
> +    semanage_fcontext_t *** records, unsigned
> int *count)
> +{
> +
> + dbase_config_t *dconfig =
> semanage_fcontext_dbase_homedirs(handle);
> + return dbase_list(handle, dconfig, records, count);
> +}
> diff --git a/libsemanage/src/handle.h b/libsemanage/src/handle.h
> index 889871d..1780ac8 100644
> --- a/libsemanage/src/handle.h
> +++ b/libsemanage/src/handle.h
> @@ -79,7 +79,7 @@ struct semanage_handle {
>   struct semanage_policy_table *funcs;
>  
>   /* Object databases */
> -#define DBASE_COUNT  23
> +#define DBASE_COUNT  24
>  
>  /* Local modifications */
>  #define DBASE_LOCAL_USERS_BASE  0
> @@ -102,13 +102,14 @@ struct semanage_handle {
>  #define DBASE_POLICY_INTERFACES  15
>  #define DBASE_POLICY_BOOLEANS16
>  #define DBASE_POLICY_FCONTEXTS   17
> -#define DBASE_POLICY_SEUSERS 18
> -#define DBASE_POLICY_NODES   19
> -#define DBASE_POLICY_IBPKEYS 20
> -#define DBASE_POLICY_IBENDPORTS  21
> +#define DBASE_POLICY_FCONTEXTS_H 18
> +#define DBASE_POLICY_SEUSERS 19
> +#define DBASE_POLICY_NODES   20
> +#define DBASE_POLICY_IBPKEYS 21
> +#define DBASE_POLICY_IBENDPORTS  22
>  
>  /* Active kernel policy */
> -#define DBASE_ACTIVE_BOOLEANS22
> +#define DBASE_ACTIVE_BOOLEANS23
>   dbase_config_t dbase[DBASE_COUNT];
>  };
>  
> @@ -236,6 +237,12 @@ static inline
>  }
>  
>  static inline
> +dbase_config_t *
> semanage_fcontext_dbase_homedirs(semanage_handle_t * handle)
> +{
> + return &handle->dbase[DBASE_POLICY_FCONTEXTS_H];
> +}
> +
> +static inline
>  dbase_config_t * semanage_seuser_dbase_policy(semanage_handle_t
> * handle)
>  {
>   return &handle->dbase[DBASE_POLICY_SEUSERS];


[PATCH] libsemanage: Add support for listing fcontext.homedirs file

2017-10-03 Thread Vit Mojzis
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1409813
---
 libsemanage/include/semanage/fcontexts_policy.h |  4 
 libsemanage/src/direct_api.c|  7 +++
 libsemanage/src/fcontexts_policy.c  |  8 
 libsemanage/src/handle.h| 19 +--
 4 files changed, 32 insertions(+), 6 deletions(-)

diff --git a/libsemanage/include/semanage/fcontexts_policy.h 
b/libsemanage/include/semanage/fcontexts_policy.h
index a50db2b..199a1e1 100644
--- a/libsemanage/include/semanage/fcontexts_policy.h
+++ b/libsemanage/include/semanage/fcontexts_policy.h
@@ -26,4 +26,8 @@ extern int semanage_fcontext_list(semanage_handle_t * handle,
  semanage_fcontext_t *** records,
  unsigned int *count);
 
+extern int semanage_fcontext_list_homedirs(semanage_handle_t * handle,
+ semanage_fcontext_t *** records,
+ unsigned int *count);
+
 #endif
diff --git a/libsemanage/src/direct_api.c b/libsemanage/src/direct_api.c
index 971a08f..00ad820 100644
--- a/libsemanage/src/direct_api.c
+++ b/libsemanage/src/direct_api.c
@@ -210,6 +210,12 @@ int semanage_direct_connect(semanage_handle_t * sh)
 semanage_fcontext_dbase_local(sh)) < 0)
goto err;
 
+   if (fcontext_file_dbase_init(sh,
+semanage_path(SEMANAGE_ACTIVE, 
SEMANAGE_STORE_FC_HOMEDIRS),
+semanage_path(SEMANAGE_TMP, 
SEMANAGE_STORE_FC_HOMEDIRS),
+semanage_fcontext_dbase_homedirs(sh)) < 0)
+   goto err;
+
if (seuser_file_dbase_init(sh,
   semanage_path(SEMANAGE_ACTIVE,
 SEMANAGE_SEUSERS_LOCAL),
@@ -349,6 +355,7 @@ static int semanage_direct_disconnect(semanage_handle_t * 
sh)
iface_file_dbase_release(semanage_iface_dbase_local(sh));
bool_file_dbase_release(semanage_bool_dbase_local(sh));
fcontext_file_dbase_release(semanage_fcontext_dbase_local(sh));
+   fcontext_file_dbase_release(semanage_fcontext_dbase_homedirs(sh));
seuser_file_dbase_release(semanage_seuser_dbase_local(sh));
node_file_dbase_release(semanage_node_dbase_local(sh));
 
diff --git a/libsemanage/src/fcontexts_policy.c 
b/libsemanage/src/fcontexts_policy.c
index 0b063b1..98490ab 100644
--- a/libsemanage/src/fcontexts_policy.c
+++ b/libsemanage/src/fcontexts_policy.c
@@ -51,3 +51,11 @@ int semanage_fcontext_list(semanage_handle_t * handle,
dbase_config_t *dconfig = semanage_fcontext_dbase_policy(handle);
return dbase_list(handle, dconfig, records, count);
 }
+
+int semanage_fcontext_list_homedirs(semanage_handle_t * handle,
+  semanage_fcontext_t *** records, unsigned int *count)
+{
+
+   dbase_config_t *dconfig = semanage_fcontext_dbase_homedirs(handle);
+   return dbase_list(handle, dconfig, records, count);
+}
diff --git a/libsemanage/src/handle.h b/libsemanage/src/handle.h
index 889871d..1780ac8 100644
--- a/libsemanage/src/handle.h
+++ b/libsemanage/src/handle.h
@@ -79,7 +79,7 @@ struct semanage_handle {
struct semanage_policy_table *funcs;
 
/* Object databases */
-#define DBASE_COUNT  23
+#define DBASE_COUNT  24
 
 /* Local modifications */
 #define DBASE_LOCAL_USERS_BASE  0
@@ -102,13 +102,14 @@ struct semanage_handle {
 #define DBASE_POLICY_INTERFACES  15
 #define DBASE_POLICY_BOOLEANS16
 #define DBASE_POLICY_FCONTEXTS   17
-#define DBASE_POLICY_SEUSERS 18
-#define DBASE_POLICY_NODES   19
-#define DBASE_POLICY_IBPKEYS 20
-#define DBASE_POLICY_IBENDPORTS  21
+#define DBASE_POLICY_FCONTEXTS_H 18
+#define DBASE_POLICY_SEUSERS 19
+#define DBASE_POLICY_NODES   20
+#define DBASE_POLICY_IBPKEYS 21
+#define DBASE_POLICY_IBENDPORTS  22
 
 /* Active kernel policy */
-#define DBASE_ACTIVE_BOOLEANS22
+#define DBASE_ACTIVE_BOOLEANS23
dbase_config_t dbase[DBASE_COUNT];
 };
 
@@ -236,6 +237,12 @@ static inline
 }
 
 static inline
+dbase_config_t * semanage_fcontext_dbase_homedirs(semanage_handle_t * 
handle)
+{
+   return &handle->dbase[DBASE_POLICY_FCONTEXTS_H];
+}
+
+static inline
 dbase_config_t * semanage_seuser_dbase_policy(semanage_handle_t * handle)
 {
return &handle->dbase[DBASE_POLICY_SEUSERS];
-- 
2.9.4