Allow upload without trailing newline.
This is not compliant with RFC 1521.

RFC 1521 mandates that the close-delimiter ends
in a newline:
'close-delimiter := "--" boundary "--" CRLF'
However, some software (e.g. postman) sends
their request without a trailing newline, which resulted
in failing uploads.

Signed-off-by: Matthias Heiserer <m.heise...@proxmox.com>
---

Changes from v2:
Reword commit message as I misunderstood the RFC

 src/PVE/APIServer/AnyEvent.pm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/PVE/APIServer/AnyEvent.pm b/src/PVE/APIServer/AnyEvent.pm
index 2f8718f..3cd77fa 100644
--- a/src/PVE/APIServer/AnyEvent.pm
+++ b/src/PVE/APIServer/AnyEvent.pm
@@ -1193,7 +1193,7 @@ sub file_upload_multipart {
 
        my $newline_re = qr/\015?\012/;
        my $delim_re = qr/--\Q$boundary\E${newline_re}/;
-       my $close_delim_re = qr/--\Q$boundary\E--${newline_re}/;
+       my $close_delim_re = qr/--\Q$boundary\E--/;
 
        # Phase 0 - preserve boundary, but remove everything before
        if ($rstate->{phase} == 0 && $hdl->{rbuf} =~ s/^.*?($delim_re)/$1/s) {
-- 
2.30.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to