auth-02-aewp-basic.c [plain text]
#include <Security/Authorization.h>
#include <stdio.h>
#include <stdint.h>
#include <dirent.h>
#include "testmore.h"
#define EXECUTABLE "/bin/ls"
#define LSTARGET "/private/var/db/shadow"
int main(__unused int ac, const char *av[])
{
AuthorizationRef authRef = NULL;
char *lsargs[2] = { "-l", LSTARGET };
FILE *commPipe = NULL;
DIR *dir = NULL;
char lsbuf[6];
plan_tests(5);
dir = opendir(LSTARGET);
is(errno, EACCES, "AEWP-basic: opendir()");
ok_status(AuthorizationCreate(NULL, NULL, kAuthorizationFlagDefaults, &authRef),
"AEWP-basic: AuthCreate()");
ok(authRef != NULL, "AEWP-basic: NULL authRef");
ok_status(AuthorizationExecuteWithPrivileges(authRef,
EXECUTABLE,
kAuthorizationFlagDefaults,
lsargs,
&commPipe),
"AEWP-basic: AEWP()");
is_status(fscanf(commPipe, "%s", lsbuf), 1, "AEWP-basic: fscanf()");
printf("ls output: %s\n", lsbuf);
return 0;
}