3434from collections .abc import MutableMapping
3535
3636from salt .ext .tornado .escape import native_str , parse_qs_bytes , utf8
37- from salt .ext .tornado .log import gen_log
3837from salt .ext .tornado .util import PY3 , ObjectDict
3938
4039if PY3 :
@@ -753,14 +752,14 @@ def parse_body_arguments(content_type, body, arguments, files, headers=None):
753752 with the parsed contents.
754753 """
755754 if headers and "Content-Encoding" in headers :
756- gen_log .warning ("Unsupported Content-Encoding: %s" , headers ["Content-Encoding" ])
757- return
755+ raise HTTPInputError (
756+ "Unsupported Content-Encoding: %s" % headers ["Content-Encoding" ]
757+ )
758758 if content_type .startswith ("application/x-www-form-urlencoded" ):
759759 try :
760760 uri_arguments = parse_qs_bytes (native_str (body ), keep_blank_values = True )
761761 except Exception as e :
762- gen_log .warning ("Invalid x-www-form-urlencoded body: %s" , e )
763- uri_arguments = {}
762+ raise HTTPInputError ("Invalid x-www-form-urlencoded body: %s" % e )
764763 for name , values in uri_arguments .items ():
765764 if values :
766765 arguments .setdefault (name , []).extend (values )
@@ -773,9 +772,9 @@ def parse_body_arguments(content_type, body, arguments, files, headers=None):
773772 parse_multipart_form_data (utf8 (v ), body , arguments , files )
774773 break
775774 else :
776- raise ValueError ("multipart boundary not found" )
775+ raise HTTPInputError ("multipart boundary not found" )
777776 except Exception as e :
778- gen_log . warning ("Invalid multipart/form-data: %s" , e )
777+ raise HTTPInputError ("Invalid multipart/form-data: %s" % e )
779778
780779
781780def parse_multipart_form_data (boundary , data , arguments , files ):
@@ -794,26 +793,22 @@ def parse_multipart_form_data(boundary, data, arguments, files):
794793 boundary = boundary [1 :- 1 ]
795794 final_boundary_index = data .rfind (b"--" + boundary + b"--" )
796795 if final_boundary_index == - 1 :
797- gen_log .warning ("Invalid multipart/form-data: no final boundary" )
798- return
796+ raise HTTPInputError ("Invalid multipart/form-data: no final boundary found" )
799797 parts = data [:final_boundary_index ].split (b"--" + boundary + b"\r \n " )
800798 for part in parts :
801799 if not part :
802800 continue
803801 eoh = part .find (b"\r \n \r \n " )
804802 if eoh == - 1 :
805- gen_log .warning ("multipart/form-data missing headers" )
806- continue
803+ raise HTTPInputError ("multipart/form-data missing headers" )
807804 headers = HTTPHeaders .parse (part [:eoh ].decode ("utf-8" ))
808805 disp_header = headers .get ("Content-Disposition" , "" )
809806 disposition , disp_params = _parse_header (disp_header )
810807 if disposition != "form-data" or not part .endswith (b"\r \n " ):
811- gen_log .warning ("Invalid multipart/form-data" )
812- continue
808+ raise HTTPInputError ("Invalid multipart/form-data" )
813809 value = part [eoh + 4 : - 2 ]
814810 if not disp_params .get ("name" ):
815- gen_log .warning ("multipart/form-data value missing name" )
816- continue
811+ raise HTTPInputError ("multipart/form-data missing name" )
817812 name = disp_params ["name" ]
818813 if disp_params .get ("filename" ):
819814 ctype = headers .get ("Content-Type" , "application/unknown" )
0 commit comments