opnsense-src/contrib/libder/tests/test_common.h
Kyle Evans ba667efb53 Add 'contrib/libder/' from commit '9c40c4de4c33b2ba1124fb752ebea0bebaa6013f'
git-subtree-dir: contrib/libder
git-subtree-mainline: d11904b350214943dedb64c7121d4602799d7afd
git-subtree-split: 9c40c4de4c33b2ba1124fb752ebea0bebaa6013f
(cherry picked from commit 35c0a8c449fd2b7f75029ebed5e10852240f0865)
2025-01-10 20:48:21 -06:00

29 lines
501 B
C

/*-
* Copyright (c) 2024 Kyle Evans <kevans@FreeBSD.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <assert.h>
#include <fcntl.h>
#include <libgen.h>
#include <limits.h>
#include <stdlib.h>
static inline int
open_progdir(const char *prog)
{
char pdir[PATH_MAX], *resolved;
int dfd;
resolved = realpath(prog, &pdir[0]);
assert(resolved != NULL);
resolved = dirname(&pdir[0]);
assert(resolved != NULL);
dfd = open(resolved, O_DIRECTORY);
assert(dfd != -1);
return (dfd);
}