Message ID | CAEeCnGzRMiiDZKaDgnX_dqpeK5rM=aO5zBZ6frWJT4WQj5cVEQ@mail.gmail.com (mailing list archive) |
---|---|
State | Rejected |
Delegated to: | Petr Lautrbach |
Headers | show |
Series | UnicodeDecodeError: utf-8 on python semanage -i import | expand |
On Mon, Jul 1, 2024 at 1:19 PM Allan Oepping <allan@intellipay.com> wrote: > > Importing a .pp file with the python semanage -i option generates a "UnicodeDecodeError: utf-8" on an up to date Rocky 9 distribution. > > packages: > > policycoreutils-python-utils-3.6-2.1.el9.noarch > python-unversioned-command-3.9.18-3.el9.noarch > > The open() in SetImportFile needs the binary "b" option to open the file in binary mode, as the .pp file is not in utf-8 format: Did you mean to use semodule -i? That's how one imports a policy module. Also, patches should be -p1 appliable and include a Signed-off-by: line. > > --- /semanage~ 2024-07-01 10:29:20.000000000 -0600 > +++ /semanage 2024-07-01 10:54:30.520312298 -0600 > @@ -122,11 +122,11 @@ > class SetImportFile(argparse.Action): > > def __call__(self, parser, namespace, values, option_string=None): > if values and values != "-": > try: > - sys.stdin = open(values, 'r') > + sys.stdin = open(values, 'rb') > except IOError as e: > sys.stderr.write("%s: %s\n" % (e.__class__.__name__, str(e))) > sys.exit(1) > setattr(namespace, self.dest, values) > > patch also attached. > > Thanks, > > Allan Oepping
On Mon, Jul 29, 2024 at 10:51 AM Stephen Smalley <stephen.smalley.work@gmail.com> wrote: > > On Mon, Jul 1, 2024 at 1:19 PM Allan Oepping <allan@intellipay.com> wrote: > > > > Importing a .pp file with the python semanage -i option generates a "UnicodeDecodeError: utf-8" on an up to date Rocky 9 distribution. > > > > packages: > > > > policycoreutils-python-utils-3.6-2.1.el9.noarch > > python-unversioned-command-3.9.18-3.el9.noarch > > > > The open() in SetImportFile needs the binary "b" option to open the file in binary mode, as the .pp file is not in utf-8 format: > > Did you mean to use semodule -i? That's how one imports a policy module. > Also, patches should be -p1 appliable and include a Signed-off-by: line. As far as I can tell, semanage expects a text file as input with commands to execute, not a module file.
--- /semanage~ 2024-07-01 10:29:20.000000000 -0600 +++ /semanage 2024-07-01 10:54:30.520312298 -0600 @@ -122,11 +122,11 @@ class SetImportFile(argparse.Action): def __call__(self, parser, namespace, values, option_string=None): if values and values != "-": try: - sys.stdin = open(values, 'r') + sys.stdin = open(values, 'rb') except IOError as e: sys.stderr.write("%s: %s\n" % (e.__class__.__name__, str(e))) sys.exit(1) setattr(namespace, self.dest, values)