Univention Bugzilla – Bug 25231
Absturz des UMC-Servers bei invalidem JSON-Body
Last modified: 2012-03-04 14:34:18 CET
Created attachment 3971 [details] Test-Skript Wird dem UMC-Server ein nicht gültiger JSON-Body bei der Authentifizierung gesendet, stürzt der Server mit einem Traceback ab: ==================== Traceback (most recent call last): File "/usr/sbin/univention-management-console-server", line 206, in <module> umc_daemon.do_action() File "/usr/lib/pymodules/python2.6/daemon/runner.py", line 186, in do_action func(self) File "/usr/lib/pymodules/python2.6/daemon/runner.py", line 131, in _start self.app.run() File "/usr/sbin/univention-management-console-server", line 191, in run notifier.loop() File "/usr/lib/pymodules/python2.6/notifier/nf_generic.py", line 284, in loop step() File "/usr/lib/pymodules/python2.6/notifier/nf_generic.py", line 271, in step not __sockets[ cond ][ fd ]( sock_obj ): File "/usr/lib/pymodules/python2.6/univention/management/console/protocol/server.py", line 149, in _receive res = Response( msg ) File "/usr/lib/pymodules/python2.6/univention/management/console/protocol/message.py", line 242, in __init__ self.options = request.options File "/usr/lib/pymodules/python2.6/univention/management/console/protocol/message.py", line 151, in <lambda> options = property( lambda self: self._get_key( 'options' ), lambda self, value: self._set_key( 'options', value ) ) File "/usr/lib/pymodules/python2.6/univention/management/console/protocol/message.py", line 136, in _get_key return self.body.get( key ) AttributeError: 'str' object has no attribute 'get' ==================== Dabei scheint auch die JSON-Body-Länge nicht ganz richtig gezählt zu werden, in dem anghängten Skript musste die Länge des JSON-Strings um 1 erhöht werden, damit das letzte Zeichen nicht abgeschnitte wird.
Das Problem lag in der Behandlung von anderen MIME und beim Zurückschicken des Response auf einen defekten Request. (In reply to comment #0) > Dabei scheint auch die JSON-Body-Länge nicht ganz richtig gezählt zu werden, in > dem anghängten Skript musste die Länge des JSON-Strings um 1 erhöht werden, > damit das letzte Zeichen nicht abgeschnitte wird. Das Skript hängt eine Leerzeile an den Body durch das echo ohen die Option -n. Daher ist das +1 notwendig.
Der Bug wurde gefixed; Changelog vorhanden.
UCS 3.0-1 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"