psss / tests / selinux

Forked from tests/selinux 6 years ago
Clone

Blame libselinux/realpath_not_final-function/test.c

b8d8ea3
#include <stdio.h>
b8d8ea3
#include <stdlib.h>
b8d8ea3
#include <string.h>
b8d8ea3
#include <errno.h>
b8d8ea3
#include <selinux/selinux.h>
b8d8ea3
#include <linux/limits.h>
b8d8ea3
b8d8ea3
int main (int argc, char **argv) {
b8d8ea3
    if (argc < 2) {
b8d8ea3
        printf("Invalid number of arguments\n");
b8d8ea3
        return -1;
b8d8ea3
    }
b8d8ea3
b8d8ea3
    char *name;
b8d8ea3
b8d8ea3
    if (strcmp(argv[1], "NULL") == 0) {
b8d8ea3
        name = NULL;
b8d8ea3
    }
b8d8ea3
    else {
b8d8ea3
        name = argv[1];
b8d8ea3
    }
b8d8ea3
b8d8ea3
    char *resolved_path;
b8d8ea3
b8d8ea3
    if (argc == 3 && (strcmp(argv[1], "NULL") == 0)) {
b8d8ea3
        resolved_path = NULL;
b8d8ea3
    }
b8d8ea3
    else {
b8d8ea3
        resolved_path = malloc(PATH_MAX);
b8d8ea3
b8d8ea3
        if (resolved_path == NULL) {
b8d8ea3
            printf("Error while allocating memory\n");
b8d8ea3
        }
b8d8ea3
    }
b8d8ea3
b8d8ea3
    printf("Executing: realpath_not_final(%s, resolved_path)\n", name);
b8d8ea3
b8d8ea3
    int result = realpath_not_final(name, resolved_path);
b8d8ea3
b8d8ea3
    printf("realpath_not_final: %s\n", resolved_path);
b8d8ea3
b8d8ea3
    free(resolved_path);
b8d8ea3
    return result;
b8d8ea3
}