Finally, a patch of my own. This patch addresses a bunch of the compiler
string conversion warnings that were introduced with the C++-ification
patch.

Signed-off-by: Steve Beattie <[email protected]>

---
 parser/libapparmor_re/aare_rules.cc |    4 ++--
 parser/libapparmor_re/aare_rules.h  |    4 ++--
 parser/parser.h                     |   14 +++++++-------
 parser/parser_common.c              |    6 +++---
 parser/parser_include.c             |   10 +++++-----
 parser/parser_include.h             |    2 +-
 parser/parser_interface.c           |   18 +++++++++---------
 parser/parser_main.c                |    8 ++++----
 parser/parser_misc.c                |    8 ++++----
 parser/parser_regex.c               |   12 +++++++-----
 parser/parser_variable.c            |   34 +++++++++++++++++-----------------
 11 files changed, 61 insertions(+), 59 deletions(-)

Index: b/parser/parser.h
===================================================================
--- a/parser/parser.h
+++ b/parser/parser.h
@@ -234,14 +234,14 @@ extern int names_only;
 extern int option;
 extern int current_lineno;
 extern dfaflags_t dfaflags;
-extern char *progname;
-extern char *subdomainbase;
+extern const char *progname;
+extern const char *subdomainbase;
 extern char *profilename;
 extern char *profile_ns;
 extern char *current_filename;
 extern FILE *ofile;
 extern int read_implies_exec;
-extern void pwarn(char *fmt, ...) __attribute__((__format__(__printf__, 1, 
2)));
+extern void pwarn(const char *fmt, ...) __attribute__((__format__(__printf__, 
1, 2)));
 
 /* from parser_main (cannot be used in tst builds) */
 extern int force_complain;
@@ -256,7 +256,7 @@ extern void yyerror(const char *msg, ...
 extern int yylex(void);
 
 /* parser_include.c */
-extern char *basedir;
+extern const char *basedir;
 
 /* parser_regex.c */
 extern int process_regex(Profile *prof);
@@ -271,7 +271,7 @@ extern int process_policy_ents(Profile *
 
 /* parser_variable.c */
 extern int process_variables(Profile *prof);
-extern struct var_string *split_out_var(char *string);
+extern struct var_string *split_out_var(const char *string);
 extern void free_var_string(struct var_string *var);
 
 /* parser_misc.c */
@@ -284,8 +284,8 @@ extern void free_cond_entry(struct cond_
 extern void free_cond_list(struct cond_entry *ents);
 extern void print_cond_entry(struct cond_entry *ent);
 extern char *processid(char *string, int len);
-extern char *processquoted(char *string, int len);
-extern char *processunquoted(char *string, int len);
+extern char *processquoted(const char *string, int len);
+extern char *processunquoted(const char *string, int len);
 extern int get_keyword_token(const char *keyword);
 extern int name_to_capability(const char *keyword);
 extern int get_rlimit(const char *name);
Index: b/parser/parser_common.c
===================================================================
--- a/parser/parser_common.c
+++ b/parser/parser_common.c
@@ -36,8 +36,8 @@ int option = OPTION_ADD;
 
 dfaflags_t dfaflags = (dfaflags_t)(DFA_CONTROL_TREE_NORMAL | 
DFA_CONTROL_TREE_SIMPLE | DFA_CONTROL_MINIMIZE | 
DFA_CONTROL_MINIMIZE_HASH_TRANS);
 
-char *subdomainbase = NULL;
-char *progname = __FILE__;
+const char *subdomainbase = NULL;
+const char *progname = __FILE__;
 char *profile_ns = NULL;
 char *profilename = NULL;
 char *current_filename = NULL;
@@ -50,7 +50,7 @@ int read_implies_exec = 1;
 int read_implies_exec = 0;
 #endif
 
-void pwarn(char *fmt, ...)
+void pwarn(const char *fmt, ...)
 {
         va_list arg;
         char *newfmt;
Index: b/parser/parser_include.c
===================================================================
--- a/parser/parser_include.c
+++ b/parser/parser_include.c
@@ -73,9 +73,9 @@ static char *stripblanks(char *s);
 /* default base directory is /etc/subdomain.d, it can be overriden
    with the -b option. */
 
-char *basedir;
-static char *default_basedir = "/etc/apparmor.d";
-static char *old_basedir = "/etc/subdomain.d";
+const char *basedir;
+static const char *default_basedir = "/etc/apparmor.d";
+static const char *old_basedir = "/etc/subdomain.d";
 
 
 /* set up basedir so that it can be overridden/used later. */
@@ -130,7 +130,7 @@ void set_base_dir(char *dir)
 }
 
 /* Add a directory to the search path. */
-int add_search_dir(char *dir)
+int add_search_dir(const char *dir)
 {
        char *t;
        if (npath >= MAX_PATH) {
@@ -149,7 +149,7 @@ int add_search_dir(char *dir)
        }
 
        /*strip trailing /'s */
-       while (t[strlen(t) - 1] == '/')
+       while ((char) t[strlen(t) - 1] == '/')
                t[strlen(t) - 1] = 0;
        path[npath] = t;
        npath++;
Index: b/parser/parser_include.h
===================================================================
--- a/parser/parser_include.h
+++ b/parser/parser_include.h
@@ -22,7 +22,7 @@
 
 extern int preprocess_only;
 
-extern int add_search_dir(char *dir);
+extern int add_search_dir(const char *dir);
 extern void init_base_dir(void);
 extern void set_base_dir(char *dir);
 extern void parse_default_paths(void);
Index: b/parser/parser_main.c
===================================================================
--- a/parser/parser_main.c
+++ b/parser/parser_main.c
@@ -132,7 +132,7 @@ static void display_version(void)
               parser_copyright);
 }
 
-static void display_usage(char *command)
+static void display_usage(const char *command)
 {
        display_version();
        printf("\nUsage: %s [options] [profile]\n\n"
@@ -295,7 +295,7 @@ static int handle_flag_table(optflag_tab
        return 0;
 }
 
-static void display_dump(char *command)
+static void display_dump(const char *command)
 {
        display_version();
        printf("\n%s: --dump [Option]\n\n"
@@ -307,7 +307,7 @@ static void display_dump(char *command)
        print_flag_table(dumpflag_table);
 }
 
-static void display_optimize(char *command)
+static void display_optimize(const char *command)
 {
        display_version();
        printf("\n%s: -O [Option]\n\n"
@@ -831,7 +831,7 @@ out:
        return;
 }
 
-static void get_flags_string(char **flags, char *flags_file) {
+static void get_flags_string(char **flags, const char *flags_file) {
        char *pos;
        FILE *f = NULL;
        size_t size;
Index: b/parser/libapparmor_re/aare_rules.cc
===================================================================
--- a/parser/libapparmor_re/aare_rules.cc
+++ b/parser/libapparmor_re/aare_rules.cc
@@ -62,7 +62,7 @@ void aare_delete_ruleset(aare_ruleset_t
        aare_reset_matchflags();
 }
 
-int aare_add_rule(aare_ruleset_t *rules, char *rule, int deny,
+int aare_add_rule(aare_ruleset_t *rules, const char *rule, int deny,
                             uint32_t perms, uint32_t audit, dfaflags_t flags)
 {
        return aare_add_rule_vec(rules, deny, perms, audit, 1, &rule, flags);
@@ -96,7 +96,7 @@ void aare_reset_matchflags(void)
 
 int aare_add_rule_vec(aare_ruleset_t *rules, int deny,
                                 uint32_t perms, uint32_t audit,
-                                int count, char **rulev, dfaflags_t flags)
+                                int count, const char **rulev, dfaflags_t 
flags)
 {
        Node *tree = NULL, *accept;
        int exact_match;
Index: b/parser/libapparmor_re/aare_rules.h
===================================================================
--- a/parser/libapparmor_re/aare_rules.h
+++ b/parser/libapparmor_re/aare_rules.h
@@ -35,10 +35,10 @@ typedef struct aare_ruleset aare_ruleset
 
 aare_ruleset_t *aare_new_ruleset(int reverse);
 void aare_delete_ruleset(aare_ruleset_t *rules);
-int aare_add_rule(aare_ruleset_t *rules, char *rule, int deny, uint32_t perms,
+int aare_add_rule(aare_ruleset_t *rules, const char *rule, int deny, uint32_t 
perms,
                  uint32_t audit, dfaflags_t flags);
 int aare_add_rule_vec(aare_ruleset_t *rules, int deny, uint32_t perms,
-                     uint32_t audit, int count, char **rulev,
+                     uint32_t audit, int count, const char **rulev,
                      dfaflags_t flags);
 void *aare_create_dfa(aare_ruleset_t *rules, size_t *size, dfaflags_t flags);
 void aare_reset_matchflags(void);
Index: b/parser/parser_regex.c
===================================================================
--- a/parser/parser_regex.c
+++ b/parser/parser_regex.c
@@ -494,7 +494,7 @@ static int process_dfa_entry(aare_rulese
                /* add the pair rule */
                char lbuf[PATH_MAX + 8];
                int perms = AA_LINK_BITS & entry->mode;
-               char *vec[2];
+               const char *vec[2];
                int pos;
                vec[0] = tbuf;
                if (entry->link_name) {
@@ -512,7 +512,7 @@ static int process_dfa_entry(aare_rulese
                        return FALSE;
        }
        if (entry->mode & AA_CHANGE_PROFILE) {
-               char *vec[3];
+               const char *vec[3];
                char lbuf[PATH_MAX + 8];
                int index = 1;
 
@@ -538,7 +538,7 @@ static int process_dfa_entry(aare_rulese
        if (entry->mode & (AA_USER_PTRACE | AA_OTHER_PTRACE)) {
                int mode = entry->mode & (AA_USER_PTRACE | AA_OTHER_PTRACE);
                if (entry->ns) {
-                       char *vec[2];
+                       const char *vec[2];
                        vec[0] = entry->ns;
                        vec[1] = entry->name;
                        if (!aare_add_rule_vec(dfarules, 0, mode, 0, 2, vec, 
dfaflags))
@@ -767,7 +767,8 @@ static int process_mnt_entry(aare_rulese
        char typebuf[PATH_MAX + 3];
        char flagsbuf[PATH_MAX + 3];
        char optsbuf[PATH_MAX + 3];
-       char *p, *vec[5];
+       char *p;
+       const char *vec[5];
        int count = 0;
        unsigned int flags, inv_flags;
 
@@ -1033,7 +1034,8 @@ static int process_dbus_entry(aare_rules
        char pathbuf[PATH_MAX + 3];
        char ifacebuf[PATH_MAX + 3];
        char memberbuf[PATH_MAX + 3];
-       char *p, *vec[6];
+       char *p;
+       const char *vec[6];
 
        pattern_t ptype;
        int pos;
Index: b/parser/parser_interface.c
===================================================================
--- a/parser/parser_interface.c
+++ b/parser/parser_interface.c
@@ -327,7 +327,7 @@ inline int sd_write64(sd_serialize *p, u
        return 1;
 }
 
-inline int sd_write_name(sd_serialize *p, char *name)
+inline int sd_write_name(sd_serialize *p, const char *name)
 {
        long size = 0;
        PDEBUG("Writing name '%s'\n", name);
@@ -362,7 +362,7 @@ inline int sd_write_blob(sd_serialize *p
 
 #define align64(X) (((size_t) (X) + (size_t) 7) & ~((size_t) 7))
 inline int sd_write_aligned_blob(sd_serialize *p, void *b, int buf_size,
-                                char *name)
+                                const char *name)
 {
        size_t pad;
        u32 tmp;
@@ -381,7 +381,7 @@ inline int sd_write_aligned_blob(sd_seri
        return 1;
 }
 
-static int sd_write_strn(sd_serialize *p, char *b, int size, char *name)
+static int sd_write_strn(sd_serialize *p, char *b, int size, const char *name)
 {
        u16 tmp;
        if (!sd_write_name(p, name))
@@ -396,12 +396,12 @@ static int sd_write_strn(sd_serialize *p
        return 1;
 }
 
-inline int sd_write_string(sd_serialize *p, char *b, char *name)
+inline int sd_write_string(sd_serialize *p, char *b, const char *name)
 {
        return sd_write_strn(p, b, strlen(b) + 1, name);
 }
 
-inline int sd_write_struct(sd_serialize *p, char *name)
+inline int sd_write_struct(sd_serialize *p, const char *name)
 {
        if (!sd_write_name(p, name))
                return 0;
@@ -417,7 +417,7 @@ inline int sd_write_structend(sd_seriali
        return 1;
 }
 
-inline int sd_write_array(sd_serialize *p, char *name, int size)
+inline int sd_write_array(sd_serialize *p, const char *name, int size)
 {
        u16 tmp;
        if (!sd_write_name(p, name))
@@ -437,7 +437,7 @@ inline int sd_write_arrayend(sd_serializ
        return 1;
 }
 
-inline int sd_write_list(sd_serialize *p, char *name)
+inline int sd_write_list(sd_serialize *p, const char *name)
 {
        if (!sd_write_name(p, name))
                return 0;
@@ -733,7 +733,7 @@ int sd_serialize_profile(int option, Pro
                if (kernel_load) fd = open(filename, O_WRONLY);
                break;
        case OPTION_STDOUT:
-               filename = "stdout";
+               filename = strdup("stdout");
                fd = dup(1);
                break;
        case OPTION_OFILE:
@@ -754,7 +754,7 @@ int sd_serialize_profile(int option, Pro
 
        error = 0;
 
-       if (option != OPTION_STDOUT && option != OPTION_OFILE)
+       if (option != OPTION_OFILE)
                free(filename);
 
        if (option == OPTION_REMOVE) {
Index: b/parser/parser_misc.c
===================================================================
--- a/parser/parser_misc.c
+++ b/parser/parser_misc.c
@@ -384,7 +384,7 @@ struct aa_network_entry *network_entry(c
        return entry;
 };
 
-char *processunquoted(char *string, int len)
+char *processunquoted(const char *string, int len)
 {
        char *tmp, *s;
        int l;
@@ -433,7 +433,7 @@ char *processid(char *string, int len)
 /* rewrite a quoted string substituting escaped characters for the
  * real thing.  Strip the quotes around the string */
 
-char *processquoted(char *string, int len)
+char *processquoted(const char *string, int len)
 {
        char *tmp, *s;
        int l;
@@ -1235,7 +1235,7 @@ int test_str_to_boolean(void)
 int test_processunquoted(void)
 {
        int rc = 0;
-       char *teststring, *processedstring;
+       const char *teststring, *processedstring;
 
        teststring = "";
        MY_TEST(strcmp(teststring, processunquoted(teststring, 
strlen(teststring))) == 0,
@@ -1263,7 +1263,7 @@ int test_processunquoted(void)
 int test_processquoted(void)
 {
        int rc = 0;
-       char *teststring, *processedstring;
+       const char *teststring, *processedstring;
        char *out;
 
        teststring = "";
Index: b/parser/parser_variable.c
===================================================================
--- a/parser/parser_variable.c
+++ b/parser/parser_variable.c
@@ -32,9 +32,9 @@
 #include "mount.h"
 #include "dbus.h"
 
-static inline char *get_var_end(char *var)
+static inline const char *get_var_end(const char *var)
 {
-       char *eptr = var;
+       const char *eptr = var;
 
        while (*eptr) {
                if (*eptr == '}')
@@ -52,8 +52,8 @@ static inline char *get_var_end(char *va
        return NULL; /* no terminating '}' */
 }
 
-static struct var_string *split_string(char *string, char *var_begin,
-                                      char *var_end)
+static struct var_string *split_string(const char *string, const char 
*var_begin,
+                                      const char *var_end)
 {
        struct var_string *n = (struct var_string *) calloc(1, sizeof(struct 
var_string));
        unsigned int offset = strlen("@{");
@@ -75,10 +75,10 @@ static struct var_string *split_string(c
        return n;
 }
 
-struct var_string *split_out_var(char *string)
+struct var_string *split_out_var(const char *string)
 {
        struct var_string *n = NULL;
-       char *sptr;
+       const char *sptr;
        BOOL bEscape = 0;       /* flag to indicate escape */
 
        if (!string)            /* shouldn't happen */
@@ -99,7 +99,7 @@ struct var_string *split_out_var(char *s
                        if (bEscape) {
                                bEscape = FALSE;
                        } else if (*(sptr + 1) == '{') {
-                               char *eptr = get_var_end(sptr + 2);
+                               const char *eptr = get_var_end(sptr + 2);
                                if (!eptr)
                                        break; /* no variable end found */
                                if (eptr == sptr + 2) {
@@ -325,8 +325,8 @@ int process_profile_variables(Profile *p
 int test_get_var_end(void)
 {
        int rc = 0;
-       char *retchar;
-       char *testchar;
+       const char *retchar;
+       const char *testchar;
 
        testchar = "TRUE}";
        retchar = get_var_end(testchar);
@@ -356,9 +356,9 @@ int test_split_string(void)
        int rc = 0;
        char *tst_string, *var_start, *var_end;
        struct var_string *ret_struct;
-       char *prefix = "abcdefg";
-       char *var = "boogie";
-       char *suffix = "suffixication";
+       const char *prefix = "abcdefg";
+       const char *var = "boogie";
+       const char *suffix = "suffixication";
 
        asprintf(&tst_string, "%s@{%s}%s", prefix, var, suffix);
        var_start = tst_string + strlen(prefix);
@@ -404,11 +404,11 @@ int test_split_out_var(void)
        int rc = 0;
        char *tst_string, *tmp;
        struct var_string *ret_struct;
-       char *prefix = "abcdefg";
-       char *var = "boogie";
-       char *var2 = "V4rW1thNum5";
-       char *var3 = "boogie_board";
-       char *suffix = "suffixication";
+       const char *prefix = "abcdefg";
+       const char *var = "boogie";
+       const char *var2 = "V4rW1thNum5";
+       const char *var3 = "boogie_board";
+       const char *suffix = "suffixication";
 
        /* simple case */
        asprintf(&tst_string, "%s@{%s}%s", prefix, var, suffix);

-- 
Steve Beattie
<[email protected]>
http://NxNW.org/~steve/

Attachment: signature.asc
Description: Digital signature

-- 
AppArmor mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/apparmor

Reply via email to