Controller::LoginScreen: AuthHandler::handle ohne Argumente aufrufen
authorSven Schöling <s.schoeling@linet-services.de>
Wed, 24 Jan 2018 15:16:31 +0000 (16:16 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Wed, 24 Jan 2018 15:16:31 +0000 (16:16 +0100)
commitae69689aea78c4a209523c22392683fa34ce77f3
tree478b7e42191be69d3ff01e7a6fb4e0828710d91c
parent259a5727def9f5b9655498e68c8e498c7e0db9f5
Controller::LoginScreen: AuthHandler::handle ohne Argumente aufrufen

Abgesehen davon, dass die Parameter nicht mehr benutzt werden, behebt
das einen ganz ekeligen Bug: "panic: attempt to copy freed scalar"

Das Problem ist, dass der AuthHandler selber das Einloggen übernimmt und
dafür %::myconfig neu beschreibt. Wenn währenddessen aber ein Alias von
einem %::myconfig Value auf dem Stack liegt, wird der sofort freigegeben
weil der Stack nicht refcounted ist.

Normalerweise fällt das nicht weiter auf, und die Daten werden im
final pass aufgeräumt. Aber mit backtrace_on_error wird bei einem Fehler
sofort ein Carp::confess aufgerufen, und das nimmt für den Stacktrace
den Stack auseinander und stolpert dabei über den bereits freigegeben Wert.
SL/Controller/LoginScreen.pm