[pve-devel] [PATCH v3 http-server 3/3] multipart upload: don't require trailing newline

Matthias Heiserer m.heiserer at proxmox.com
Mon Dec 12 16:07:56 CET 2022


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.heiserer at 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






More information about the pve-devel mailing list