/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to mandos

  • Committer: teddy at recompile
  • Date: 2020-02-08 14:01:38 UTC
  • Revision ID: teddy@recompile.se-20200208140138-h3ett0amdelfpt90
mandos: If possible, use shlex.quote() instead of re.escape()

* mandos: Make sure shlex.quote() exists (falling back to assigning
  re.escape to it).
  (Client.start_checker): Use shlex.quote() instead of re.escape().

Show diffs side-by-side

added added

removed removed

Lines of Context:
79
79
import codecs
80
80
import unittest
81
81
import random
 
82
import shlex
82
83
 
83
84
import dbus
84
85
import dbus.service
103
104
    collections.abc = abc
104
105
    del abc
105
106
 
 
107
# Add shlex.quote if it does not exist
 
108
try:
 
109
    shlex.quote
 
110
except AttributeError:
 
111
    shlex.quote = re.escape
 
112
 
106
113
# Show warnings by default
107
114
if not sys.warnoptions:
108
115
    import warnings
1127
1134
        if self.checker is None:
1128
1135
            # Escape attributes for the shell
1129
1136
            escaped_attrs = {
1130
 
                attr: re.escape(str(getattr(self, attr)))
 
1137
                attr: shlex.quote(str(getattr(self, attr)))
1131
1138
                for attr in self.runtime_expansions}
1132
1139
            try:
1133
1140
                command = self.checker_command % escaped_attrs