aplat

Documents structurés pour Unix
git clone git://git.asteride.xyz/~ldp/aplat.git
Journaux | Fichiers | Références | LISEZ-MOI | LICENCE

commit 5237ebac5d0f47216882b213f52047624e224817
parent 1c5207a78c87fc9ca895c82cc7caca9dec1c8dab
Auteur: Selve <selve@asteride.xyz>
Date:   Mon, 22 Jan 2024 00:38:41 -0500

protection avec pledge et unveil pour OpenBSD

Diffstat:
Maplat.c | 14+++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/aplat.c b/aplat.c @@ -1,6 +1,7 @@ #include <assert.h> #include <stdio.h> #include <stdlib.h> +#include <unistd.h> #include <libintl.h> #include <locale.h> @@ -43,8 +44,19 @@ main(int argc, char **argv) if ((nom_prog = argv[0]) == NULL || nom_prog[0] == '\0') nom_prog = "aplat"; +#ifdef __OpenBSD__ + if (unveil(I18N_DOS, "r") < 0 || + unveil("/usr/share/locale/UTF-8/LC_CTYPE", "r") < 0) { + fprintf(stderr, _("%s: erreur avec unveil()\n"), nom_prog); + return 1; + } + if (pledge("stdio rpath", NULL) < 0) { + fprintf(stderr, _("%s: erreur avec pledge()\n"), nom_prog); + return 1; + } +#endif + setlocale(LC_ALL, ""); - /*setlocale(LC_MESSAGES, "");*/ bindtextdomain(I18N_DOMAINE, I18N_DOS); textdomain(I18N_DOMAINE);