Hello community, here is the log from the commit of package checkpolicy for openSUSE:Factory checked in at 2019-03-24 14:54:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/checkpolicy (Old) and /work/SRC/openSUSE:Factory/.checkpolicy.new.25356 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "checkpolicy" Sun Mar 24 14:54:59 2019 rev:28 rq:687199 version:2.9 Changes: -------- --- /work/SRC/openSUSE:Factory/checkpolicy/checkpolicy.changes 2018-12-07 14:36:39.590977497 +0100 +++ /work/SRC/openSUSE:Factory/.checkpolicy.new.25356/checkpolicy.changes 2019-03-24 14:55:02.171214518 +0100 @@ -1,0 +2,10 @@ +Wed Mar 20 14:58:08 UTC 2019 - jseg...@suse.com + +- Update to version 2.9 + * Add option to sort contexts when creating a binary policy + * Update manpage + * check the result value of hashtable_search + * destroy the class datum if it fails to initialize + * remove extraneous policy build noise + +------------------------------------------------------------------- Old: ---- checkpolicy-2.8.tar.gz New: ---- checkpolicy-2.9.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ checkpolicy.spec ++++++ --- /var/tmp/diff_new_pack.lY4Y7b/_old 2019-03-24 14:55:02.635214469 +0100 +++ /var/tmp/diff_new_pack.lY4Y7b/_new 2019-03-24 14:55:02.639214469 +0100 @@ -1,7 +1,7 @@ # # spec file for package checkpolicy # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,15 +16,15 @@ # -%define libsepol_ver 2.8 +%define libsepol_ver 2.9 Name: checkpolicy -Version: 2.8 +Version: 2.9 Release: 0 Summary: SELinux policy compiler License: GPL-2.0-or-later Group: Productivity/Security Url: https://github.com/SELinuxProject/selinux -Source0: https://github.com/SELinuxProject/selinux/releases/download/20180524/%{name}-%{version}.tar.gz +Source0: https://github.com/SELinuxProject/selinux/releases/download/20190315/%{name}-%{version}.tar.gz Source1: checkpolicy-tests.tar.gz BuildRequires: bison BuildRequires: flex @@ -86,5 +86,6 @@ %{_bindir}/sedismod %{_bindir}/sedispol %{_mandir}/man8/check*.*%{ext_man} +%{_mandir}/ru/man8/check*.*%{ext_man} %changelog ++++++ checkpolicy-2.8.tar.gz -> checkpolicy-2.9.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/checkpolicy-2.8/Makefile new/checkpolicy-2.9/Makefile --- old/checkpolicy-2.8/Makefile 2018-05-24 20:21:09.000000000 +0200 +++ new/checkpolicy-2.9/Makefile 2019-03-15 11:32:30.000000000 +0100 @@ -1,6 +1,7 @@ # # Makefile for building the checkpolicy program # +LINGUAS ?= ru PREFIX ?= /usr BINDIR ?= $(PREFIX)/bin MANDIR ?= $(PREFIX)/share/man @@ -55,6 +56,12 @@ install -m 755 $(TARGETS) $(DESTDIR)$(BINDIR) install -m 644 checkpolicy.8 $(DESTDIR)$(MANDIR)/man8 install -m 644 checkmodule.8 $(DESTDIR)$(MANDIR)/man8 + for lang in $(LINGUAS) ; do \ + if [ -e $${lang} ] ; then \ + mkdir -p $(DESTDIR)$(MANDIR)/$${lang}/man8 ; \ + install -m 644 $${lang}/*.8 $(DESTDIR)$(MANDIR)/$${lang}/man8 ; \ + fi ; \ + done relabel: install /sbin/restorecon $(DESTDIR)$(BINDIR)/checkpolicy diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/checkpolicy-2.8/VERSION new/checkpolicy-2.9/VERSION --- old/checkpolicy-2.8/VERSION 2018-05-24 20:21:09.000000000 +0200 +++ new/checkpolicy-2.9/VERSION 2019-03-15 11:32:30.000000000 +0100 @@ -1 +1 @@ -2.8 +2.9 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/checkpolicy-2.8/checkmodule.c new/checkpolicy-2.9/checkmodule.c --- old/checkpolicy-2.8/checkmodule.c 2018-05-24 20:21:09.000000000 +0200 +++ new/checkpolicy-2.9/checkmodule.c 2019-03-15 11:32:30.000000000 +0100 @@ -228,7 +228,6 @@ if (optind != argc) usage(argv[0]); } - printf("%s: loading policy configuration from %s\n", argv[0], file); /* Set policydb and sidtab used by libsepol service functions to my structures, so that I can directly populate and @@ -302,8 +301,6 @@ sepol_sidtab_destroy(&sidtab); - printf("%s: policy configuration loaded\n", argv[0]); - if (outfile) { FILE *outfp = fopen(outfile, "w"); @@ -313,16 +310,11 @@ } if (!cil) { - printf("%s: writing binary representation (version %d) to %s\n", - argv[0], policyvers, outfile); - if (write_binary_policy(&modpolicydb, outfp) != 0) { fprintf(stderr, "%s: error writing %s\n", argv[0], outfile); exit(1); } } else { - printf("%s: writing CIL to %s\n",argv[0], outfile); - if (sepol_module_policydb_to_cil(outfp, &modpolicydb, 0) != 0) { fprintf(stderr, "%s: error writing %s\n", argv[0], outfile); exit(1); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/checkpolicy-2.8/checkpolicy.8 new/checkpolicy-2.9/checkpolicy.8 --- old/checkpolicy-2.8/checkpolicy.8 2018-05-24 20:21:09.000000000 +0200 +++ new/checkpolicy-2.9/checkpolicy.8 2019-03-15 11:32:30.000000000 +0100 @@ -3,7 +3,7 @@ checkpolicy \- SELinux policy compiler .SH SYNOPSIS .B checkpolicy -.I "[\-b[F]] [\-C] [\-d] [\-M] [\-c policyvers] [\-o output_file] [input_file]" +.I "[\-b[F]] [\-C] [\-d] [\-U handle_unknown (allow,deny,reject)] [\-M] [\-c policyvers] [\-o output_file] [\-S] [\-t target_platform (selinux,xen)] [\-V] [input_file]" .br .SH "DESCRIPTION" This manual page describes the @@ -21,30 +21,33 @@ .B \-b,\-\-binary Read an existing binary policy file rather than a source policy.conf file. .TP +.B \-F,\-\-conf +Write policy.conf file rather than binary policy file. Can only be used with binary policy file. +.TP .B \-C,\-\-cil Write CIL policy file rather than binary policy file. .TP .B \-d,\-\-debug Enter debug mode after loading the policy. .TP -.B \-F,\-\-conf -Write policy.conf file rather than binary policy file. Can only be used with binary policy file. +.B \-U,\-\-handle-unknown <action> +Specify how the kernel should handle unknown classes or permissions (deny, allow or reject). .TP .B \-M,\-\-mls Enable the MLS policy when checking and compiling the policy. .TP +.B \-c policyvers +Specify the policy version, defaults to the latest. +.TP .B \-o,\-\-output filename Write a binary policy file to the specified filename. .TP -.B \-c policyvers -Specify the policy version, defaults to the latest. +.B \-S,\-\-sort +Sort ocontexts before writing out the binary policy. This option makes output of checkpolicy consistent with binary policies created by semanage and secilc. .TP .B \-t,\-\-target Specify the target platform (selinux or xen). .TP -.B \-U,\-\-handle-unknown <action> -Specify how the kernel should handle unknown classes or permissions (deny, allow or reject). -.TP .B \-V,\-\-version Show version information. .TP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/checkpolicy-2.8/checkpolicy.c new/checkpolicy-2.9/checkpolicy.c --- old/checkpolicy-2.8/checkpolicy.c 2018-05-24 20:21:09.000000000 +0200 +++ new/checkpolicy-2.9/checkpolicy.c 2019-03-15 11:32:30.000000000 +0100 @@ -111,9 +111,9 @@ static __attribute__((__noreturn__)) void usage(const char *progname) { printf - ("usage: %s [-b[F]] [-C] [-d] [-U handle_unknown (allow,deny,reject)] [-M]" - "[-c policyvers (%d-%d)] [-o output_file] [-t target_platform (selinux,xen)]" - "[input_file]\n", + ("usage: %s [-b[F]] [-C] [-d] [-U handle_unknown (allow,deny,reject)] [-M] " + "[-c policyvers (%d-%d)] [-o output_file] [-S] " + "[-t target_platform (selinux,xen)] [-V] [input_file]\n", progname, POLICYDB_VERSION_MIN, POLICYDB_VERSION_MAX); exit(1); } @@ -394,7 +394,7 @@ size_t scontext_len, pathlen; unsigned int i; unsigned int protocol, port; - unsigned int binary = 0, debug = 0, cil = 0, conf = 0; + unsigned int binary = 0, debug = 0, sort = 0, cil = 0, conf = 0; struct val_to_name v; int ret, ch, fd, target = SEPOL_TARGET_SELINUX; unsigned int nel, uret; @@ -418,11 +418,12 @@ {"mls", no_argument, NULL, 'M'}, {"cil", no_argument, NULL, 'C'}, {"conf",no_argument, NULL, 'F'}, + {"sort", no_argument, NULL, 'S'}, {"help", no_argument, NULL, 'h'}, {NULL, 0, NULL, 0} }; - while ((ch = getopt_long(argc, argv, "o:t:dbU:MCFVc:h", long_options, NULL)) != -1) { + while ((ch = getopt_long(argc, argv, "o:t:dbU:MCFSVc:h", long_options, NULL)) != -1) { switch (ch) { case 'o': outfile = optarg; @@ -462,6 +463,9 @@ break; } usage(argv[0]); + case 'S': + sort = 1; + break; case 'M': mlspol = 1; break; @@ -512,8 +516,6 @@ if (optind != argc) usage(argv[0]); } - printf("%s: loading policy configuration from %s\n", argv[0], file); - /* Set policydb and sidtab used by libsepol service functions to my structures, so that I can directly populate and manipulate them. */ @@ -623,8 +625,6 @@ if (policydb_load_isids(&policydb, &sidtab)) exit(1); - printf("%s: policy configuration loaded\n", argv[0]); - if (outfile) { outfp = fopen(outfile, "w"); if (!outfp) { @@ -636,17 +636,21 @@ if (!cil) { if (!conf) { - printf("%s: writing binary representation (version %d) to %s\n", argv[0], policyvers, outfile); - policydb.policy_type = POLICY_KERN; policy_file_init(&pf); pf.type = PF_USE_STDIO; pf.fp = outfp; + if (sort) { + ret = policydb_sort_ocontexts(&policydb); + if (ret) { + fprintf(stderr, "%s: error sorting ocontexts\n", + argv[0]); + exit(1); + } + } ret = policydb_write(&policydb, &pf); } else { - printf("%s: writing policy.conf to %s\n", - argv[0], outfile); ret = sepol_kernel_policydb_to_conf(outfp, policydbp); } if (ret) { @@ -655,7 +659,6 @@ exit(1); } } else { - printf("%s: writing CIL to %s\n",argv[0], outfile); if (binary) { ret = sepol_kernel_policydb_to_cil(outfp, policydbp); } else { @@ -894,8 +897,6 @@ FGETS(ans, sizeof(ans), stdin); pathlen = strlen(ans); ans[pathlen - 1] = 0; - printf("%s: loading policy configuration from %s\n", - argv[0], ans); fd = open(ans, O_RDONLY); if (fd < 0) { fprintf(stderr, "Can't open '%s': %s\n", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/checkpolicy-2.8/module_compiler.c new/checkpolicy-2.9/module_compiler.c --- old/checkpolicy-2.8/module_compiler.c 2018-05-24 20:21:09.000000000 +0200 +++ new/checkpolicy-2.9/module_compiler.c 2019-03-15 11:32:30.000000000 +0100 @@ -802,6 +802,7 @@ if ((datum = calloc(1, sizeof(*datum))) == NULL || symtab_init(&datum->permissions, PERM_SYMTAB_SIZE)) { yyerror("Out of memory!"); + class_datum_destroy(datum); return -1; } ret = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/checkpolicy-2.8/policy_define.c new/checkpolicy-2.9/policy_define.c --- old/checkpolicy-2.8/policy_define.c 2018-05-24 20:21:09.000000000 +0200 +++ new/checkpolicy-2.9/policy_define.c 2019-03-15 11:32:30.000000000 +0100 @@ -1107,6 +1107,11 @@ (cat_datum_t *) hashtab_search(policydbp->p_cats. table, (hashtab_key_t) id); + if (!cdatum) { + yyerror2("unknown category %s", id); + free(id); + return -1; + } range_start = range_end = cdatum->s.value - 1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/checkpolicy-2.8/ru/checkmodule.8 new/checkpolicy-2.9/ru/checkmodule.8 --- old/checkpolicy-2.8/ru/checkmodule.8 1970-01-01 01:00:00.000000000 +0100 +++ new/checkpolicy-2.9/ru/checkmodule.8 2019-03-15 11:32:30.000000000 +0100 @@ -0,0 +1,57 @@ +.TH CHECKMODULE 8 +.SH ИМЯ +checkmodule \- компилятор модулей политики SELinux +.SH ОБЗОР +.B checkmodule +.I "[\-h] [\-b] [\-C] [\-m] [\-M] [\-U handle_unknown ] [\-V] [\-o output_file] [input_file]" +.SH "ОПИСАНИЕ" +Эта страница руководства содержит описание команды +.BR checkmodule. +.PP +.B checkmodule +- это программа, которая проверяет и компилирует модуль политики безопасности SELinux в двоичное представление. Она может создавать либо базовый модуль политики (по умолчанию), либо небазовый модуль политики (параметр \-m); обычно требуется создать небазовый модуль политики для последующего добавления в существующее хранилище модулей, в котором уже есть базовый модуль, предоставленный базовой политикой. Используйте semodule_package, чтобы объединить этот модуль с соответствующим необязательным файлом контекстов файлов и таким образом создать пакет политики, а затем используйте semodule для установки пакета модуля в хранилище модулей и загрузите получившуюся политику. + +.SH ПАРАМЕТРЫ +.TP +.B \-b,\-\-binary +Прочитать существующий файл двоичного модуля политики вместо исходного файла модуля политики. Этот параметр полезен при разработке/отладке. +.TP +.B \-C,\-\-cil +Записать файл политики CIL, а не двоичный файл политики. +.TP +.B \-h,\-\-help +Вывести справку. +.TP +.B \-m +Создать небазовый модуль политики. +.TP +.B \-M,\-\-mls +Включить поддержку MLS/MCS при проверке и компиляции модуля политики. +.TP +.B \-V,\-\-version +Показать версии политики, созданные этой программой. Обратите внимание, что в настоящее время не поддерживается сборка более ранних версий. +.TP +.B \-o,\-\-output filename +Записать файл двоичного модуля политики с указанным именем файла. +Без указания имени файла checkmodule только проверит синтаксис исходного файла модуля и не будет создавать двоичный модуль. +.TP +.B \-U,\-\-handle-unknown <action> +Указать, как ядро должно обрабатывать неизвестные классы или разрешения (запрещать, разрешать или отклонять). + +.SH ПРИМЕР +.nf +# Собрать небазовый модуль политики с включённой системой безопасности MLS/MCS. +$ checkmodule \-M \-m httpd.te \-o httpd.mod +.fi + +.SH "СМОТРИТЕ ТАКЖЕ" +.B semodule(8), semodule_package(8) +Документация SELinux по адресу http://www.nsa.gov/research/selinux, +в частности - "Настройка политики SELinux". + + +.SH АВТОРЫ +Эта страница руководства была скопирована со страницы руководства checkpolicy, написанной Arpad Magosanyi <m...@bunuel.tii.matav.hu>, +и отредактирована Dan Walsh <dwa...@redhat.com>. +Программа была написана Stephen Smalley <s...@tycho.nsa.gov>. +Перевод на русский язык выполнила Герасименко Олеся <gamma...@basealt.ru>. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/checkpolicy-2.8/ru/checkpolicy.8 new/checkpolicy-2.9/ru/checkpolicy.8 --- old/checkpolicy-2.8/ru/checkpolicy.8 1970-01-01 01:00:00.000000000 +0100 +++ new/checkpolicy-2.9/ru/checkpolicy.8 2019-03-15 11:32:30.000000000 +0100 @@ -0,0 +1,59 @@ +.TH CHECKPOLICY 8 +.SH ИМЯ +checkpolicy \- компилятор политики SELinux +.SH ОБЗОР +.B checkpolicy +.I "[\-b[F]] [\-C] [\-d] [\-M] [\-c policyvers] [\-o output_file] [input_file]" +.br +.SH "ОПИСАНИЕ" +Эта страница руководства содержит описание команды +.BR checkpolicy. +.PP +.B checkpolicy +- это программа, которая проверяет и компилирует конфигурацию политики безопасности SELinux в двоичное представление, которое можно загрузить в ядро. Если имя входного файла не указано, checkpolicy попытается выполнить чтение из policy.conf или policy (если указан флаг \-b). + +.SH ПАРАМЕТРЫ +.TP +.B \-b,\-\-binary +Прочитать существующий двоичный файл политики, а не исходный файл policy.conf. +.TP +.B \-C,\-\-cil +Записать файл политики CIL, а не двоичный файл политики. +.TP +.B \-d,\-\-debug +Войти в режим отладки после загрузки политики. +.TP +.B \-F,\-\-conf +Записать файл policy.conf, а не двоичный файл политики. Этот параметр можно использовать только при работе с двоичным файлом политики. +.TP +.B \-M,\-\-mls +Включить политику MLS при проверке и компиляции политики. +.TP +.B \-o,\-\-output filename +Записать двоичный файл политики с указанным именем файла. +.TP +.B \-c policyvers +Указать версию политики (по умолчанию используется последняя). +.TP +.B \-t,\-\-target +Указать целевую платформу (selinux или xen). +.TP +.B \-U,\-\-handle-unknown <action> +Указать, как ядро должно обрабатывать неизвестные классы или разрешения (запрещать, разрешать или отклонять). +.TP +.B \-V,\-\-version +Показать сведения о версии. +.TP +.B \-h,\-\-help +Показать сведения об использовании. + +.SH "СМОТРИТЕ ТАКЖЕ" +Документация SELinux по адресу http://www.nsa.gov/research/selinux, +в частности - "Настройка политики SELinux". + + +.SH АВТОРЫ +Эта страница руководства была написана Arpad Magosanyi <m...@bunuel.tii.matav.hu>, +и отредактирована Stephen Smalley <s...@tycho.nsa.gov>. +Программа была написана Stephen Smalley <s...@tycho.nsa.gov>. +Перевод на русский язык выполнила Герасименко Олеся <gamma...@basealt.ru>.