Merge tag '3.5' into master

We were previously on 3.5-rc2, there has been only little changes since
then.

Followed the steps:
  repo start update_3.5 .
  git merge 3.5 --no-ff # No merge conflicts were found.
  lunch && m
  repo upload .
  # Update METADATA in a separate change.

Test: TH
Change-Id: If88fe90d2cbdb1ba6a279cba8b397cd2c808c6ab
This commit is contained in:
Thiébaud Weksteen 2023-03-20 14:34:41 +11:00
commit a9f20263fd
153 changed files with 44829 additions and 44145 deletions

View file

@ -10,31 +10,30 @@ jobs:
matrix: matrix:
compiler: [gcc, clang] compiler: [gcc, clang]
python-ruby-version: python-ruby-version:
- {python: '3.10', ruby: '3.1'} - {python: '3.11', ruby: '3.1'}
- {python: '3.10', ruby: '3.1', other: test-flags-override} - {python: '3.11', ruby: '3.1', other: 'test-flags-override'}
- {python: '3.10', ruby: '3.1', other: test-debug} - {python: '3.11', ruby: '3.1', other: 'test-debug'}
- {python: '3.10', ruby: '3.1', other: linker-bfd} - {python: '3.11', ruby: '3.1', other: 'linker-bfd'}
- {python: '3.10', ruby: '3.1', other: linker-gold} - {python: '3.11', ruby: '3.1', other: 'linker-gold'}
# Test several Python versions with the latest Ruby version # Test several Python versions with the latest Ruby version
- {python: '3.10', ruby: '3.1'}
- {python: '3.9', ruby: '3.1'} - {python: '3.9', ruby: '3.1'}
- {python: '3.8', ruby: '3.1'} - {python: '3.8', ruby: '3.1'}
- {python: '3.7', ruby: '3.1'} - {python: '3.7', ruby: '3.1'}
- {python: '3.6', ruby: '3.1'}
- {python: '3.5', ruby: '3.1'}
- {python: 'pypy3.7', ruby: '3.1'} - {python: 'pypy3.7', ruby: '3.1'}
# Test several Ruby versions with the latest Python version # Test several Ruby versions with the latest Python version
- {python: '3.10', ruby: '3.0'} - {python: '3.11', ruby: '3.0'}
- {python: '3.10', ruby: '2.7'} - {python: '3.11', ruby: '2.7'}
- {python: '3.10', ruby: '2.6'} - {python: '3.11', ruby: '2.6'}
- {python: '3.10', ruby: '2.5'} - {python: '3.11', ruby: '2.5'}
exclude: exclude:
- compiler: clang - compiler: clang
python-ruby-version: {python: '3.10', ruby: '3.1', other: linker-bfd} python-ruby-version: {python: '3.11', ruby: '3.1', other: 'linker-bfd'}
- compiler: clang - compiler: clang
python-ruby-version: {python: '3.10', ruby: '3.1', other: linker-gold} python-ruby-version: {python: '3.11', ruby: '3.1', other: 'linker-gold'}
include: include:
- compiler: gcc - compiler: gcc
python-ruby-version: {python: '3.10', ruby: '3.1', other: sanitizers} python-ruby-version: {python: '3.11', ruby: '3.1', other: 'sanitizers'}
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3

View file

@ -1 +1 @@
3.5-rc2 3.5

View file

@ -1 +1 @@
3.5-rc2 3.5

View file

@ -1 +1 @@
3.5-rc2 3.5

View file

@ -1 +1 @@
3.5-rc2 3.5

View file

@ -8,8 +8,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n" "POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2021-12-28 22:16+0000\n" "PO-Revision-Date: 2022-10-17 13:19+0000\n"
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n" "Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
"Language-Team: German <https://translate.fedoraproject.org/projects/selinux/" "Language-Team: German <https://translate.fedoraproject.org/projects/selinux/"
"gui/de/>\n" "gui/de/>\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.10.1\n" "X-Generator: Weblate 4.14.1\n"
#: ../booleansPage.py:199 ../system-config-selinux.ui:999 #: ../booleansPage.py:199 ../system-config-selinux.ui:999
msgid "Boolean" msgid "Boolean"
@ -657,10 +657,8 @@ msgid "<b>Add booleans from the %s policy:</b>"
msgstr "<b>Fügen Sie boolesche Variablen von der %s Richtlinie hinzu:</b>" msgstr "<b>Fügen Sie boolesche Variablen von der %s Richtlinie hinzu:</b>"
#: ../polgen.ui:2179 #: ../polgen.ui:2179
#, fuzzy
#| msgid "Boolean"
msgid "Add Boolean" msgid "Add Boolean"
msgstr "Boolean" msgstr "Booleschen Wert hinzufügen"
#: ../polgen.ui:2234 #: ../polgen.ui:2234
#, python-format #, python-format

View file

@ -10,8 +10,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n" "POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2021-09-11 11:04+0000\n" "PO-Revision-Date: 2022-10-27 13:20+0000\n"
"Last-Translator: Ludek Janda <ljanda@redhat.com>\n" "Last-Translator: Ludek Janda <ljanda@redhat.com>\n"
"Language-Team: Japanese <https://translate.fedoraproject.org/projects/" "Language-Team: Japanese <https://translate.fedoraproject.org/projects/"
"selinux/gui/ja/>\n" "selinux/gui/ja/>\n"
@ -20,7 +20,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.8\n" "X-Generator: Weblate 4.14.1\n"
#: ../booleansPage.py:199 ../system-config-selinux.ui:999 #: ../booleansPage.py:199 ../system-config-selinux.ui:999
msgid "Boolean" msgid "Boolean"
@ -396,7 +396,7 @@ msgstr ""
#: ../polgen.ui:705 #: ../polgen.ui:705
msgid "<b>Enter name of application or user role:</b>" msgid "<b>Enter name of application or user role:</b>"
msgstr "<b>アプリケーションかユーザーロールの名前を入:</b>" msgstr "<b>アプリケーションかユーザーロールの名前を入:</b>"
#: ../polgen.ui:739 #: ../polgen.ui:739
msgid "Enter complete path for executable to be confined." msgid "Enter complete path for executable to be confined."

View file

@ -3,8 +3,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n" "POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2022-07-21 11:19+0000\n" "PO-Revision-Date: 2022-11-23 17:19+0000\n"
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n" "Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
"Language-Team: Georgian <https://translate.fedoraproject.org/projects/" "Language-Team: Georgian <https://translate.fedoraproject.org/projects/"
"selinux/gui/ka/>\n" "selinux/gui/ka/>\n"
@ -13,7 +13,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.13\n" "X-Generator: Weblate 4.14.2\n"
#: ../booleansPage.py:199 ../system-config-selinux.ui:999 #: ../booleansPage.py:199 ../system-config-selinux.ui:999
msgid "Boolean" msgid "Boolean"
@ -284,7 +284,7 @@ msgstr ""
#: ../polgen.ui:387 #: ../polgen.ui:387
msgid "User Application" msgid "User Application"
msgstr "" msgstr "მომხმარებლის აპლიკაცია"
#: ../polgen.ui:391 ../polgen.ui:408 #: ../polgen.ui:391 ../polgen.ui:408
msgid "" msgid ""
@ -659,7 +659,7 @@ msgstr ""
#: ../semanagePage.py:131 #: ../semanagePage.py:131
#, python-format #, python-format
msgid "Are you sure you want to delete %s '%s'?" msgid "Are you sure you want to delete %s '%s'?"
msgstr "" msgstr "დარწმუნებული ბრძანდებით, რომ გნებავთ, წაშალოთ %s '%s'?"
#: ../semanagePage.py:131 #: ../semanagePage.py:131
#, python-format #, python-format
@ -691,7 +691,7 @@ msgstr "ძალით"
#: ../statusPage.py:80 ../system-config-selinux.ui:593 #: ../statusPage.py:80 ../system-config-selinux.ui:593
msgid "Disabled" msgid "Disabled"
msgstr "გამორთულია" msgstr "გათიშულია"
#: ../statusPage.py:99 #: ../statusPage.py:99
msgid "Status" msgid "Status"
@ -741,7 +741,7 @@ msgstr ""
#: ../system-config-selinux.ui:117 #: ../system-config-selinux.ui:117
msgid "Login Name" msgid "Login Name"
msgstr "" msgstr "მომხმარებლის სახელი"
#: ../system-config-selinux.ui:128 ../system-config-selinux.ui:1376 #: ../system-config-selinux.ui:128 ../system-config-selinux.ui:1376
#: ../system-config-selinux.ui:1911 ../usersPage.py:55 #: ../system-config-selinux.ui:1911 ../usersPage.py:55
@ -806,7 +806,7 @@ msgstr ""
#: ../system-config-selinux.ui:741 #: ../system-config-selinux.ui:741
msgid "<b>Select:</b>" msgid "<b>Select:</b>"
msgstr "" msgstr "<b>აირჩიეთ:</b>"
#: ../system-config-selinux.ui:771 #: ../system-config-selinux.ui:771
msgid "System Default Enforcing Mode" msgid "System Default Enforcing Mode"

View file

@ -9,9 +9,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n" "POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2021-10-02 18:05+0000\n" "PO-Revision-Date: 2022-09-24 15:19+0000\n"
"Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n" "Last-Translator: Oğuz Ersen <oguz@ersen.moe>\n"
"Language-Team: Turkish <https://translate.fedoraproject.org/projects/selinux/" "Language-Team: Turkish <https://translate.fedoraproject.org/projects/selinux/"
"gui/tr/>\n" "gui/tr/>\n"
"Language: tr\n" "Language: tr\n"
@ -19,7 +19,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n>1);\n" "Plural-Forms: nplurals=2; plural=(n>1);\n"
"X-Generator: Weblate 4.8\n" "X-Generator: Weblate 4.14.1\n"
#: ../booleansPage.py:199 ../system-config-selinux.ui:999 #: ../booleansPage.py:199 ../system-config-selinux.ui:999
msgid "Boolean" msgid "Boolean"
@ -241,7 +241,7 @@ msgstr "GPL"
msgid "translator-credits" msgid "translator-credits"
msgstr "" msgstr ""
"Serdar Sağlam <teknomobil@yandex.com>\n" "Serdar Sağlam <teknomobil@yandex.com>\n"
"Oğuz Ersen <oguzersen@protonmail.com>" "Oğuz Ersen <oguz@ersen.moe>"
#: ../polgen.ui:34 #: ../polgen.ui:34
msgid "Add Booleans Dialog" msgid "Add Booleans Dialog"

View file

@ -1 +1 @@
3.5-rc2 3.5

View file

@ -54,6 +54,11 @@ extern int getpidcon_raw(pid_t pid, char ** con);
extern int getprevcon(char ** con); extern int getprevcon(char ** con);
extern int getprevcon_raw(char ** con); extern int getprevcon_raw(char ** con);
/* Get previous context (prior to last exec) of process identified by pid, and
set *con to refer to it. Caller must free via freecon. */
extern int getpidprevcon(pid_t pid, char ** con);
extern int getpidprevcon_raw(pid_t pid, char ** con);
/* Get exec context, and set *con to refer to it. /* Get exec context, and set *con to refer to it.
Sets *con to NULL if no exec context has been set, i.e. using default. Sets *con to NULL if no exec context has been set, i.e. using default.
If non-NULL, caller must free via freecon. */ If non-NULL, caller must free via freecon. */

View file

@ -23,6 +23,10 @@ setcon \- set current security context of a process
.sp .sp
.BI "int getpidcon_raw(pid_t " pid ", char **" context ); .BI "int getpidcon_raw(pid_t " pid ", char **" context );
.sp .sp
.BI "int getpidprevcon(pid_t " pid ", char **" context );
.sp
.BI "int getpidprevcon_raw(pid_t " pid ", char **" context );
.sp
.BI "int getpeercon(int " fd ", char **" context ); .BI "int getpeercon(int " fd ", char **" context );
.sp .sp
.BI "int getpeercon_raw(int " fd ", char **" context ); .BI "int getpeercon_raw(int " fd ", char **" context );
@ -50,6 +54,11 @@ same as getcon but gets the context before the last exec.
returns the process context for the specified PID, which must be free'd with returns the process context for the specified PID, which must be free'd with
.BR freecon (). .BR freecon ().
.TP
.BR getpidprevcon ()
returns the process context before the last exec for the specified PID, which must be free'd with
.BR freecon ().
.TP .TP
.BR getpeercon () .BR getpeercon ()
retrieves the context of the peer socket, which must be free'd with retrieves the context of the peer socket, which must be free'd with
@ -125,6 +134,7 @@ will fail if it is not allowed by policy.
.BR getcon_raw (), .BR getcon_raw (),
.BR getprevcon_raw (), .BR getprevcon_raw (),
.BR getpidcon_raw (), .BR getpidcon_raw (),
.BR getpidprevcon_raw (),
.BR getpeercon_raw () .BR getpeercon_raw ()
and and
.BR setcon_raw () .BR setcon_raw ()
@ -139,5 +149,9 @@ The retrieval functions might return success and set
.I *context .I *context
to NULL if and only if SELinux is not enabled. to NULL if and only if SELinux is not enabled.
Querying a foreign process via its PID, e.g. \fBgetpidcon\fR() or
\fBgetpidprevcon\fR(), is inherently racy and therefore should never be relied
upon for security purposes.
.SH "SEE ALSO" .SH "SEE ALSO"
.BR selinux "(8), " setexeccon "(3)" .BR selinux "(8), " setexeccon "(3)"

View file

@ -0,0 +1 @@
.so man3/getcon.3

View file

@ -0,0 +1 @@
.so man3/getcon.3

View file

@ -86,7 +86,7 @@ CFLAGS ?= -O -Wall -W -Wundef -Wformat-y2k -Wformat-security -Winit-self -Wmissi
-Wno-missing-field-initializers -Wno-sign-compare \ -Wno-missing-field-initializers -Wno-sign-compare \
-Wno-format-nonliteral -Wframe-larger-than=$(MAX_STACK_SIZE) \ -Wno-format-nonliteral -Wframe-larger-than=$(MAX_STACK_SIZE) \
-fstack-protector-all --param=ssp-buffer-size=4 -fexceptions \ -fstack-protector-all --param=ssp-buffer-size=4 -fexceptions \
-fasynchronous-unwind-tables -fdiagnostics-show-option -funit-at-a-time \ -fasynchronous-unwind-tables -fdiagnostics-show-option \
-Werror -Wno-aggregate-return -Wno-redundant-decls \ -Werror -Wno-aggregate-return -Wno-redundant-decls \
$(EXTRA_CFLAGS) $(EXTRA_CFLAGS)

View file

@ -246,3 +246,9 @@ LIBSELINUX_3.4 {
selinux_restorecon_get_skipped_errors; selinux_restorecon_get_skipped_errors;
selinux_restorecon_parallel; selinux_restorecon_parallel;
} LIBSELINUX_1.0; } LIBSELINUX_1.0;
LIBSELINUX_3.5 {
global:
getpidprevcon;
getpidprevcon_raw;
} LIBSELINUX_3.4;

View file

@ -300,3 +300,21 @@ int getpidcon(pid_t pid, char **c)
} }
return getprocattrcon(c, pid, "current", NULL); return getprocattrcon(c, pid, "current", NULL);
} }
int getpidprevcon_raw(pid_t pid, char **c)
{
if (pid <= 0) {
errno = EINVAL;
return -1;
}
return getprocattrcon_raw(c, pid, "prev", NULL);
}
int getpidprevcon(pid_t pid, char **c)
{
if (pid <= 0) {
errno = EINVAL;
return -1;
}
return getprocattrcon(c, pid, "prev", NULL);
}

View file

@ -432,10 +432,11 @@ static pthread_mutex_t fl_mutex = PTHREAD_MUTEX_INITIALIZER;
* that matched. * that matched.
*/ */
static int filespec_add(ino_t ino, const char *con, const char *file, static int filespec_add(ino_t ino, const char *con, const char *file,
struct rest_flags *flags) const struct rest_flags *flags)
{ {
file_spec_t *prevfl, *fl; file_spec_t *prevfl, *fl;
int h, ret; uint32_t h;
int ret;
struct stat64 sb; struct stat64 sb;
__pthread_mutex_lock(&fl_mutex); __pthread_mutex_lock(&fl_mutex);
@ -524,7 +525,8 @@ unlock_1:
static void filespec_eval(void) static void filespec_eval(void)
{ {
file_spec_t *fl; file_spec_t *fl;
int h, used, nel, len, longest; uint32_t h;
size_t used, nel, len, longest;
if (!fl_head) if (!fl_head)
return; return;
@ -544,7 +546,7 @@ static void filespec_eval(void)
} }
selinux_log(SELINUX_INFO, selinux_log(SELINUX_INFO,
"filespec hash table stats: %d elements, %d/%d buckets used, longest chain length %d\n", "filespec hash table stats: %zu elements, %zu/%zu buckets used, longest chain length %zu\n",
nel, used, HASH_BUCKETS, longest); nel, used, HASH_BUCKETS, longest);
} }
#else #else
@ -559,7 +561,7 @@ static void filespec_eval(void)
static void filespec_destroy(void) static void filespec_destroy(void)
{ {
file_spec_t *fl, *tmp; file_spec_t *fl, *tmp;
int h; uint32_t h;
if (!fl_head) if (!fl_head)
return; return;
@ -624,15 +626,13 @@ out:
} }
static int restorecon_sb(const char *pathname, const struct stat *sb, static int restorecon_sb(const char *pathname, const struct stat *sb,
struct rest_flags *flags, bool first) const struct rest_flags *flags, bool first)
{ {
char *newcon = NULL; char *newcon = NULL;
char *curcon = NULL; char *curcon = NULL;
char *newtypecon = NULL; char *newtypecon = NULL;
int rc; int rc;
bool updated = false;
const char *lookup_path = pathname; const char *lookup_path = pathname;
float pc;
if (rootpath) { if (rootpath) {
if (strncmp(rootpath, lookup_path, rootpathlen) != 0) { if (strncmp(rootpath, lookup_path, rootpathlen) != 0) {
@ -647,10 +647,10 @@ static int restorecon_sb(const char *pathname, const struct stat *sb,
if (rootpath != NULL && lookup_path[0] == '\0') if (rootpath != NULL && lookup_path[0] == '\0')
/* this is actually the root dir of the alt root. */ /* this is actually the root dir of the alt root. */
rc = selabel_lookup_raw(fc_sehandle, &newcon, "/", rc = selabel_lookup_raw(fc_sehandle, &newcon, "/",
sb->st_mode); sb->st_mode & S_IFMT);
else else
rc = selabel_lookup_raw(fc_sehandle, &newcon, lookup_path, rc = selabel_lookup_raw(fc_sehandle, &newcon, lookup_path,
sb->st_mode); sb->st_mode & S_IFMT);
if (rc < 0) { if (rc < 0) {
if (errno == ENOENT) { if (errno == ENOENT) {
@ -670,7 +670,7 @@ static int restorecon_sb(const char *pathname, const struct stat *sb,
fc_count++; fc_count++;
if (fc_count % STAR_COUNT == 0) { if (fc_count % STAR_COUNT == 0) {
if (flags->mass_relabel && efile_count > 0) { if (flags->mass_relabel && efile_count > 0) {
pc = (fc_count < efile_count) ? (100.0 * float pc = (fc_count < efile_count) ? (100.0 *
fc_count / efile_count) : 100; fc_count / efile_count) : 100;
fprintf(stdout, "\r%-.1f%%", (double)pc); fprintf(stdout, "\r%-.1f%%", (double)pc);
} else { } else {
@ -710,6 +710,8 @@ static int restorecon_sb(const char *pathname, const struct stat *sb,
} }
if (curcon == NULL || strcmp(curcon, newcon) != 0) { if (curcon == NULL || strcmp(curcon, newcon) != 0) {
bool updated = false;
if (!flags->set_specctx && curcon && if (!flags->set_specctx && curcon &&
(is_context_customizable(curcon) > 0)) { (is_context_customizable(curcon) > 0)) {
if (flags->verbose) { if (flags->verbose) {

View file

@ -4,7 +4,7 @@ from setuptools import Extension, setup
setup( setup(
name="selinux", name="selinux",
version="3.5-rc2", version="3.5",
description="SELinux python 3 bindings", description="SELinux python 3 bindings",
author="SELinux Project", author="SELinux Project",
author_email="selinux@vger.kernel.org", author_email="selinux@vger.kernel.org",

View file

@ -9,6 +9,7 @@ getdefaultcon
getenforce getenforce
getfilecon getfilecon
getpidcon getpidcon
getpidprevcon
getsebool getsebool
getseuser getseuser
matchpathcon matchpathcon

View file

@ -32,7 +32,7 @@ CFLAGS ?= -O -Wall -W -Wundef -Wformat-y2k -Wformat-security -Winit-self -Wmissi
-Wno-missing-field-initializers -Wno-sign-compare \ -Wno-missing-field-initializers -Wno-sign-compare \
-Wno-format-nonliteral -Wframe-larger-than=$(MAX_STACK_SIZE) -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 \ -Wno-format-nonliteral -Wframe-larger-than=$(MAX_STACK_SIZE) -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 \
-fstack-protector-all --param=ssp-buffer-size=4 -fexceptions \ -fstack-protector-all --param=ssp-buffer-size=4 -fexceptions \
-fasynchronous-unwind-tables -fdiagnostics-show-option -funit-at-a-time \ -fasynchronous-unwind-tables -fdiagnostics-show-option \
-Werror -Wno-aggregate-return -Wno-redundant-decls -Wstrict-overflow=5 \ -Werror -Wno-aggregate-return -Wno-redundant-decls -Wstrict-overflow=5 \
$(EXTRA_CFLAGS) $(EXTRA_CFLAGS)

View file

@ -0,0 +1,33 @@
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <selinux/selinux.h>
int main(int argc, char **argv)
{
pid_t pid;
char *buf;
int rc;
if (argc != 2) {
fprintf(stderr, "usage: %s pid\n", argv[0]);
exit(1);
}
if (sscanf(argv[1], "%d", &pid) != 1) {
fprintf(stderr, "%s: invalid pid %s\n", argv[0], argv[1]);
exit(2);
}
rc = getpidprevcon(pid, &buf);
if (rc < 0) {
fprintf(stderr, "%s: getpidprevcon() failed: %s\n", argv[0], strerror(errno));
exit(3);
}
printf("%s\n", buf);
freecon(buf);
exit(EXIT_SUCCESS);
}

View file

@ -1 +1 @@
3.5-rc2 3.5

View file

@ -1 +1 @@
3.5-rc2 3.5

View file

@ -1 +1 @@
3.5-rc2 3.5

View file

@ -9,6 +9,7 @@ Conflicts=shutdown.target
[Service] [Service]
ExecStart=/sbin/mcstransd -f ExecStart=/sbin/mcstransd -f
RuntimeDirectory=setrans RuntimeDirectory=setrans
RuntimeDirectoryPreserve=true
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View file

@ -1 +1 @@
3.5-rc2 3.5

View file

@ -3,17 +3,18 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n" "POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2016-01-06 06:54-0500\n" "PO-Revision-Date: 2023-01-14 17:20+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n" "Last-Translator: Amro Hatem <amro_hatem_1@outlook.com>\n"
"Language-Team: Arabic\n" "Language-Team: Arabic <https://translate.fedoraproject.org/projects/selinux/"
"policycoreutils/ar/>\n"
"Language: ar\n" "Language: ar\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Zanata 4.6.2\n" "X-Generator: Weblate 4.15\n"
#: ../run_init/run_init.c:67 #: ../run_init/run_init.c:67
msgid "" msgid ""
@ -243,7 +244,7 @@ msgstr "فشل في ضبط مدى جديد %s\n"
#: ../newrole/newrole.c:977 #: ../newrole/newrole.c:977
#, c-format #, c-format
msgid "failed to convert new context to string\n" msgid "failed to convert new context to string\n"
msgstr "فشل في في تحويل السياق الجديد إلى نص\n" msgstr "فشل في تحويل السياق الجديد إلى نص\n"
#: ../newrole/newrole.c:982 #: ../newrole/newrole.c:982
#, c-format #, c-format

View file

@ -3,16 +3,17 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n" "POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2018-08-21 10:26-0400\n" "PO-Revision-Date: 2022-10-17 12:19+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n" "Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
"Language-Team: German\n" "Language-Team: German <https://translate.fedoraproject.org/projects/selinux/"
"policycoreutils/de/>\n"
"Language: de\n" "Language: de\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Zanata 4.6.2\n" "X-Generator: Weblate 4.14.1\n"
#: ../run_init/run_init.c:67 #: ../run_init/run_init.c:67
msgid "" msgid ""
@ -99,7 +100,7 @@ msgstr "newrole: %s: Fehler in Zeile %lu.\n"
#: ../newrole/newrole.c:385 #: ../newrole/newrole.c:385
#, c-format #, c-format
msgid "Cannot encrypt password.\n" msgid "Cannot encrypt password.\n"
msgstr "" msgstr "Passwort kann nicht verschlüsselt werden.\n"
#: ../newrole/newrole.c:449 #: ../newrole/newrole.c:449
#, c-format #, c-format

View file

@ -4,9 +4,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n" "POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2020-08-28 03:29+0000\n" "PO-Revision-Date: 2022-10-06 08:19+0000\n"
"Last-Translator: Julien Humbert <julroy67@gmail.com>\n" "Last-Translator: Ludek Janda <ljanda@redhat.com>\n"
"Language-Team: French <https://translate.fedoraproject.org/projects/selinux/" "Language-Team: French <https://translate.fedoraproject.org/projects/selinux/"
"policycoreutils/fr/>\n" "policycoreutils/fr/>\n"
"Language: fr\n" "Language: fr\n"
@ -14,7 +14,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.2.1\n" "X-Generator: Weblate 4.14.1\n"
#: ../run_init/run_init.c:67 #: ../run_init/run_init.c:67
msgid "" msgid ""
@ -102,7 +102,7 @@ msgstr "nouveau rôle : %s : erreur à la ligne %lu.\n"
#: ../newrole/newrole.c:385 #: ../newrole/newrole.c:385
#, c-format #, c-format
msgid "Cannot encrypt password.\n" msgid "Cannot encrypt password.\n"
msgstr "" msgstr "Impossible de crypter le mot de passe.\n"
#: ../newrole/newrole.c:449 #: ../newrole/newrole.c:449
#, c-format #, c-format

View file

@ -3,8 +3,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n" "POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2022-09-01 08:42+0000\n" "PO-Revision-Date: 2022-09-23 11:19+0000\n"
"Last-Translator: 김인수 <simmon@nplob.com>\n" "Last-Translator: 김인수 <simmon@nplob.com>\n"
"Language-Team: Korean <https://translate.fedoraproject.org/projects/selinux/" "Language-Team: Korean <https://translate.fedoraproject.org/projects/selinux/"
"policycoreutils/ko/>\n" "policycoreutils/ko/>\n"
@ -13,7 +13,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.14\n" "X-Generator: Weblate 4.14.1\n"
#: ../run_init/run_init.c:67 #: ../run_init/run_init.c:67
msgid "" msgid ""
@ -107,7 +107,7 @@ msgstr "비밀번호 파일에서 유효한 엔트리를 찾을 수 없습니다
#: ../newrole/newrole.c:460 #: ../newrole/newrole.c:460
#, c-format #, c-format
msgid "Out of memory!\n" msgid "Out of memory!\n"
msgstr "메모리가 다 찼습니다!\n" msgstr "메모리 부족!\n"
#: ../newrole/newrole.c:465 #: ../newrole/newrole.c:465
#, c-format #, c-format

View file

@ -5,16 +5,17 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n" "POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2017-12-15 09:06-0500\n" "PO-Revision-Date: 2022-09-08 15:19+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n" "Last-Translator: Luna Jernberg <bittin@reimu.nl>\n"
"Language-Team: Swedish\n" "Language-Team: Swedish <https://translate.fedoraproject.org/projects/selinux/"
"policycoreutils/sv/>\n"
"Language: sv\n" "Language: sv\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Zanata 4.6.2\n" "X-Generator: Weblate 4.14\n"
#: ../run_init/run_init.c:67 #: ../run_init/run_init.c:67
msgid "" msgid ""
@ -98,7 +99,7 @@ msgstr "newrole: %s: fel på rad %lu.\n"
#: ../newrole/newrole.c:385 #: ../newrole/newrole.c:385
#, c-format #, c-format
msgid "Cannot encrypt password.\n" msgid "Cannot encrypt password.\n"
msgstr "" msgstr "Kan inte kryptera lösenord.\n"
#: ../newrole/newrole.c:449 #: ../newrole/newrole.c:449
#, c-format #, c-format

View file

@ -4,9 +4,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n" "POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2021-01-10 20:36+0000\n" "PO-Revision-Date: 2022-11-25 17:19+0000\n"
"Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n" "Last-Translator: Oğuz Ersen <oguz@ersen.moe>\n"
"Language-Team: Turkish <https://translate.fedoraproject.org/projects/selinux/" "Language-Team: Turkish <https://translate.fedoraproject.org/projects/selinux/"
"policycoreutils/tr/>\n" "policycoreutils/tr/>\n"
"Language: tr\n" "Language: tr\n"
@ -14,7 +14,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n>1);\n" "Plural-Forms: nplurals=2; plural=(n>1);\n"
"X-Generator: Weblate 4.4\n" "X-Generator: Weblate 4.14.2\n"
#: ../run_init/run_init.c:67 #: ../run_init/run_init.c:67
msgid "" msgid ""
@ -98,7 +98,7 @@ msgstr "newrole: %s: %lu. satırda hata.\n"
#: ../newrole/newrole.c:385 #: ../newrole/newrole.c:385
#, c-format #, c-format
msgid "Cannot encrypt password.\n" msgid "Cannot encrypt password.\n"
msgstr "" msgstr "Parola şifrelenemiyor.\n"
#: ../newrole/newrole.c:449 #: ../newrole/newrole.c:449
#, c-format #, c-format

View file

@ -1 +1 @@
3.5-rc2 3.5

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Some files were not shown because too many files have changed in this diff Show more