Revision 6e56204d
Von Jan Büren vor mehr als 13 Jahren hinzugefügt
SL/Form.pm | ||
---|---|---|
1204 | 1204 |
local (*IN, *OUT); |
1205 | 1205 |
|
1206 | 1206 |
my $userspath = $::lx_office_conf{paths}->{userspath}; |
1207 |
|
|
1207 | 1208 |
$self->{"cwd"} = getcwd(); |
1208 | 1209 |
$self->{"tmpdir"} = $self->{cwd} . "/${userspath}"; |
1209 | 1210 |
|
... | ... | |
1295 | 1296 |
$result = $template->parse(*STDOUT); |
1296 | 1297 |
} |
1297 | 1298 |
|
1298 |
Common::copy_file_to_webdav_folder($self) if ($self->{webdav}); |
|
1299 | 1299 |
if (!$result) { |
1300 | 1300 |
$self->cleanup(); |
1301 | 1301 |
$self->error("$self->{IN} : " . $template->get_error()); |
Auch abrufbar als: Unified diff
Revert "Webdav-Komponente: Das Erstellen des Verzeichnisses ausgelagert. Ferner den Beleg auch in das Webdav-Verzeichnis kopieren."
This reverts commit 4cb3ecfd6f144901ed89dae7acafdf1c124c53f4.
Svens Anmerkungen:
Ich denke anders, wie immer.
- schonwieder deutsche Kommentare grrr
- return $main::lxdebug->leave_sub() unless ($path); <- solche kontrukte liefern 1
zurück (ich hab das irgendwann mal auf definiert 1 gesetzt nachdem vorher alles
mögliche bei rauskommen konnte). Wenn dann benutz lieber sowas:
$::lxdebug->leave_sub && return unless $path;
- copy_file_to_webdav_folder setzt $form->{type} auf '' und stirbt anschliessend
auf die Bedingung !$form->{type}. Das soll wahrscheinlich nicht so sein oder?
- Nicht jede print Operation hat tmpfiles. Im schlimmsten Fall hast Du damit n
directory traversal eingebaut, das musst Du unbedingt dreifach prüfen und nicht
einfach aus form holen. Sonst schreibt einer einfach tmpdir=/etc&&tmpfile=passwd
in die URL.
Und zu Deinem ursprünglichen Problem: Ich vermute das liegt an der Positionierung
in parse_template. Die Funktion ist ziemlich destruktiv geschrieben, die macht
halt form kaputt um was druckbares zu produzieren. Lass Dir mal form dunpen, ich
vermute dass da schon irgendwas kaputt ist. Die Fehlermeldung funktioniert in der
Konsole einwandfrei.