findutils-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 1/3] find: avoid deprecation warnings with libselinux 3.1


From: Bernhard Voelker
Subject: [PATCH 1/3] find: avoid deprecation warnings with libselinux 3.1
Date: Wed, 21 Oct 2020 09:38:08 +0200

Libselinux 3.1 deprecates typedef 'security_context_t', leading to
several warnings like:

  defs.h:330:5: warning: ‘security_context_t’ is deprecated 
[-Wdeprecated-declarations]
    330 |     security_context_t scontext; /* security context */
        |     ^~~~~~~~~~~~~~~~~~

Replace all matches of 'security_context_t' by 'char *'.

* find/defs.h (struct predicate.args.scontext): Change to 'char *'.
(x_getfilecon): Adjust type of 3rd parameter.
* find/parser.c (fallback_getfilecon): Adjust type of 3rd parameter.
(optionh_getfilecon): Likewise.
(optionl_getfilecon): Likewise.
(optionp_getfilecon): Likewise.
* find/pred.c (pred_context): Adjust type of 'scontext' variable.
* find/print.c (do_fprintf): Likewise.
---
 find/defs.h   | 4 ++--
 find/parser.c | 9 ++++-----
 find/pred.c   | 2 +-
 find/print.c  | 2 +-
 4 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/find/defs.h b/find/defs.h
index 4cba5b45..2c902bcf 100644
--- a/find/defs.h
+++ b/find/defs.h
@@ -327,7 +327,7 @@ struct predicate
     struct samefile_file_id samefileid; /* samefile */
     bool types[FTYPE_COUNT];   /* file type(s) */
     struct format_val printf_vec; /* printf fprintf fprint ls fls print0 
fprint0 print */
-    security_context_t scontext; /* security context */
+    char *scontext; /* security context */
   } args;
 
   /* The next predicate in the user input sequence,
@@ -626,7 +626,7 @@ struct options
   int regex_options;
 
   /* function used to get file context */
-  int (*x_getfilecon) (int, const char *, security_context_t *);
+  int (*x_getfilecon) (int, const char *, char **);
 
   /* Optimisation level.  One is the default.
    */
diff --git a/find/parser.c b/find/parser.c
index 07efd83d..8df5f9d3 100644
--- a/find/parser.c
+++ b/find/parser.c
@@ -331,8 +331,7 @@ static const char *first_nonoption_arg = NULL;
 static const struct parser_table *noop = NULL;
 
 static int
-fallback_getfilecon (int fd, const char *name, security_context_t *p,
-                    int prev_rv)
+fallback_getfilecon (int fd, const char *name, char **p, int prev_rv)
 {
   /* Our original getfilecon () call failed.  Perhaps we can't follow a
    * symbolic link.  If that might be the problem, lgetfilecon () the link.
@@ -370,7 +369,7 @@ fallback_getfilecon (int fd, const char *name, 
security_context_t *p,
  * If the item to be examined is not a command-line argument, we
  * examine the link itself. */
 static int
-optionh_getfilecon (int fd, const char *name, security_context_t *p)
+optionh_getfilecon (int fd, const char *name, char **p)
 {
   int rv;
   if (0 == state.curdepth)
@@ -394,7 +393,7 @@ optionh_getfilecon (int fd, const char *name, 
security_context_t *p)
  * -L option is in effect.  That option makes us examine the thing the
  * symbolic link points to, not the symbolic link itself. */
 static int
-optionl_getfilecon (int fd, const char *name, security_context_t *p)
+optionl_getfilecon (int fd, const char *name, char **p)
 {
   int rv = getfileconat (fd, name, p);
   if (0 == rv)
@@ -407,7 +406,7 @@ optionl_getfilecon (int fd, const char *name, 
security_context_t *p)
  * option is in effect (this is also the default).  That option makes
  * us examine the symbolic link itself, not the thing it points to. */
 static int
-optionp_getfilecon (int fd, const char *name, security_context_t *p)
+optionp_getfilecon (int fd, const char *name, char **p)
 {
   return lgetfileconat (fd, name, p);
 }
diff --git a/find/pred.c b/find/pred.c
index fc6ee286..9f2f159e 100644
--- a/find/pred.c
+++ b/find/pred.c
@@ -1233,7 +1233,7 @@ bool
 pred_context (const char *pathname, struct stat *stat_buf,
              struct predicate *pred_ptr)
 {
-  security_context_t scontext;
+  char *scontext;
   int rv = (*options.x_getfilecon) (state.cwd_dir_fd, state.rel_pathname,
                                    &scontext);
   (void) stat_buf;
diff --git a/find/print.c b/find/print.c
index 88635b54..7e467181 100644
--- a/find/print.c
+++ b/find/print.c
@@ -1224,7 +1224,7 @@ do_fprintf (struct format_val *dest,
 
         case 'Z':               /* SELinux security context */
           {
-            security_context_t scontext;
+            char *scontext;
             int rv = (*options.x_getfilecon) (state.cwd_dir_fd, 
state.rel_pathname,
                                               &scontext);
             if (rv < 0)
-- 
2.28.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]