99653f4b76
- Update to upstream release 2016-10-14
106 lines
2.5 KiB
Diff
106 lines
2.5 KiB
Diff
diff --git libsepol-2.6/src/boolean_record.c libsepol-2.6/src/boolean_record.c
|
|
index 8b64413..ebef7f1 100644
|
|
--- libsepol-2.6/src/boolean_record.c
|
|
+++ libsepol-2.6/src/boolean_record.c
|
|
@@ -15,7 +15,7 @@ struct sepol_bool {
|
|
|
|
struct sepol_bool_key {
|
|
/* This boolean's name */
|
|
- const char *name;
|
|
+ char *name;
|
|
};
|
|
|
|
int sepol_bool_key_create(sepol_handle_t * handle,
|
|
@@ -30,7 +30,12 @@ int sepol_bool_key_create(sepol_handle_t * handle,
|
|
return STATUS_ERR;
|
|
}
|
|
|
|
- tmp_key->name = name;
|
|
+ tmp_key->name = strdup(name);
|
|
+ if (!tmp_key->name) {
|
|
+ ERR(handle, "out of memory, " "could not create boolean key");
|
|
+ free(tmp_key);
|
|
+ return STATUS_ERR;
|
|
+ }
|
|
|
|
*key_ptr = tmp_key;
|
|
return STATUS_SUCCESS;
|
|
@@ -62,6 +67,7 @@ int sepol_bool_key_extract(sepol_handle_t * handle,
|
|
|
|
void sepol_bool_key_free(sepol_bool_key_t * key)
|
|
{
|
|
+ free(key->name);
|
|
free(key);
|
|
}
|
|
|
|
diff --git libsepol-2.6/src/iface_record.c libsepol-2.6/src/iface_record.c
|
|
index 09adeb7..c8b977c 100644
|
|
--- libsepol-2.6/src/iface_record.c
|
|
+++ libsepol-2.6/src/iface_record.c
|
|
@@ -20,7 +20,7 @@ struct sepol_iface {
|
|
struct sepol_iface_key {
|
|
|
|
/* Interface name */
|
|
- const char *name;
|
|
+ char *name;
|
|
};
|
|
|
|
/* Key */
|
|
@@ -36,7 +36,12 @@ int sepol_iface_key_create(sepol_handle_t * handle,
|
|
return STATUS_ERR;
|
|
}
|
|
|
|
- tmp_key->name = name;
|
|
+ tmp_key->name = strdup(name);
|
|
+ if (!tmp_key->name) {
|
|
+ ERR(handle, "out of memory, could not create interface key");
|
|
+ free(tmp_key);
|
|
+ return STATUS_ERR;
|
|
+ }
|
|
|
|
*key_ptr = tmp_key;
|
|
return STATUS_SUCCESS;
|
|
@@ -68,6 +73,7 @@ int sepol_iface_key_extract(sepol_handle_t * handle,
|
|
|
|
void sepol_iface_key_free(sepol_iface_key_t * key)
|
|
{
|
|
+ free(key->name);
|
|
free(key);
|
|
}
|
|
|
|
diff --git libsepol-2.6/src/user_record.c libsepol-2.6/src/user_record.c
|
|
index c59c54b..e7e2fc2 100644
|
|
--- libsepol-2.6/src/user_record.c
|
|
+++ libsepol-2.6/src/user_record.c
|
|
@@ -24,7 +24,7 @@ struct sepol_user {
|
|
|
|
struct sepol_user_key {
|
|
/* This user's name */
|
|
- const char *name;
|
|
+ char *name;
|
|
};
|
|
|
|
int sepol_user_key_create(sepol_handle_t * handle,
|
|
@@ -40,7 +40,12 @@ int sepol_user_key_create(sepol_handle_t * handle,
|
|
return STATUS_ERR;
|
|
}
|
|
|
|
- tmp_key->name = name;
|
|
+ tmp_key->name = strdup(name);
|
|
+ if (!tmp_key->name) {
|
|
+ ERR(handle, "out of memory, could not create selinux user key");
|
|
+ free(tmp_key);
|
|
+ return STATUS_ERR;
|
|
+ }
|
|
|
|
*key_ptr = tmp_key;
|
|
return STATUS_SUCCESS;
|
|
@@ -71,6 +76,7 @@ int sepol_user_key_extract(sepol_handle_t * handle,
|
|
|
|
void sepol_user_key_free(sepol_user_key_t * key)
|
|
{
|
|
+ free(key->name);
|
|
free(key);
|
|
}
|
|
|