[FIX] hw_drivers: Protect a subprocess call
we execute a subprocess without checking if an error occurs so we place the subprocess.call() in a try except closes odoo/odoo#152331 X-original-commit: 4adda36260f3ba0fdf75688b419593006b80adb7 Signed-off-by: Yaroslav Soroko (yaso) <yaso@odoo.com> Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
This commit is contained in:
@@ -199,13 +199,15 @@ def generate_password():
|
||||
"""
|
||||
alphabet = 'abcdefghijkmnpqrstuvwxyz23456789'
|
||||
password = ''.join(secrets.choice(alphabet) for i in range(12))
|
||||
shadow_password = crypt.crypt(password, crypt.mksalt())
|
||||
subprocess.call(('sudo', 'usermod', '-p', shadow_password, 'pi'))
|
||||
|
||||
with writable():
|
||||
subprocess.call(('sudo', 'cp', '/etc/shadow', '/root_bypass_ramdisks/etc/shadow'))
|
||||
|
||||
return password
|
||||
try:
|
||||
shadow_password = crypt.crypt(password, crypt.mksalt())
|
||||
subprocess.run(('sudo', 'usermod', '-p', shadow_password, 'pi'), check=True)
|
||||
with writable():
|
||||
subprocess.run(('sudo', 'cp', '/etc/shadow', '/root_bypass_ramdisks/etc/shadow'), check=True)
|
||||
return password
|
||||
except subprocess.CalledProcessError as e:
|
||||
_logger.error("Failed to generate password: %s", e.output)
|
||||
return 'Error: Check IoT log'
|
||||
|
||||
|
||||
def get_certificate_status(is_first=True):
|
||||
|
||||
Reference in New Issue
Block a user