#define SMACK_ACC_LEN 4
struct smack_object {
- char object[SMACK64_LEN + 1];
+ char *object;
unsigned ac;
UT_hash_handle hh;
};
struct smack_subject {
- char subject[SMACK64_LEN + 1];
+ char *subject;
struct smack_object *objects;
UT_hash_handle hh;
};
HASH_FIND_STR(*subjects, subject_str, s);
if (s == NULL) {
s = calloc(1, sizeof(struct smack_subject));
- strcpy(s->subject, subject_str);
- HASH_ADD_STR(*subjects, subject, s);
+ s->subject = strdup(subject_str);
+ HASH_ADD_KEYPTR(hh, *subjects, s->subject, strlen(s->subject), s);
}
HASH_FIND_STR(s->objects, object_str, o);
if (o == NULL) {
o = calloc(1, sizeof(struct smack_object));
- strcpy(o->object, object_str);
- HASH_ADD_STR(s->objects, object, o);
+ o->object = strdup(object_str);
+ HASH_ADD_KEYPTR(hh, s->objects, o->object, strlen(o->object), o);
}
o->ac = ac;
while (s->objects != NULL) {
o = s->objects;
HASH_DEL(s->objects, o);
+ free(o->object);
free(o);
}
HASH_DEL(*subjects, s);
+ free(s->subject);
free(s);
}
}
START_TEST(test_set_smack_to_file)
{
FILE *file;
- int rc;
+ int rc = NULL;
char *smack;
file = fopen("set_smack-dummy.txt", "w");
{
FILE *file;
int rc;
- char *smack;
+ char *smack = NULL;
symlink("unknown.txt", "set_smack-symlink.txt");
{
FILE *file;
int rc;
- char *smack;
+ char *smack = NULL;
file = fopen("set_smack-dummy.txt", "w");
fprintf(file, "dummy\n");