mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
patchtest-send-results: check max line length, simplify responses
Check that the maximum line length of the testresult file is less than 220 characters, to help guard against malicious changes being sent in email responses. If any line exceeds this length, replace the normal testresults used in the response with a line stating that tests failed, but the results could not be processed. Also clean up the respone substrings slightly to go along with the change. (From OE-Core rev: b0d53cf587dc9afb97f00c1089e45b758e96dd7c) Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
1221529a69
commit
d1c21e9eea
|
@ -25,12 +25,8 @@ more information:\n\n---\n"""
|
||||||
|
|
||||||
suggestions = """\n---\n\nPlease address the issues identified and
|
suggestions = """\n---\n\nPlease address the issues identified and
|
||||||
submit a new revision of the patch, or alternatively, reply to this
|
submit a new revision of the patch, or alternatively, reply to this
|
||||||
email with an explanation of why the patch format should be accepted.
|
email with an explanation of why the patch format should be accepted. If
|
||||||
Note that patchtest may report failures in the merge-on-head test for
|
you believe these results are due to an error in patchtest, please
|
||||||
patches that are part of a series if they rely on changes from
|
|
||||||
preceeding entries.
|
|
||||||
|
|
||||||
If you believe these results are due to an error in patchtest, please
|
|
||||||
submit a bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest'
|
submit a bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest'
|
||||||
category under 'Yocto Project Subprojects'). Thank you!"""
|
category under 'Yocto Project Subprojects'). Thank you!"""
|
||||||
|
|
||||||
|
@ -52,8 +48,6 @@ testresult = None
|
||||||
with open(result_file, "r") as f:
|
with open(result_file, "r") as f:
|
||||||
testresult = f.read()
|
testresult = f.read()
|
||||||
|
|
||||||
reply_contents = greeting + testresult + suggestions
|
|
||||||
|
|
||||||
# we know these patch files will only contain a single patch, so only
|
# we know these patch files will only contain a single patch, so only
|
||||||
# worry about the first element for getting the subject
|
# worry about the first element for getting the subject
|
||||||
mbox = mailbox.mbox(args.patch)
|
mbox = mailbox.mbox(args.patch)
|
||||||
|
@ -61,6 +55,13 @@ mbox_subject = mbox[0]['subject']
|
||||||
subject_line = f"Patchtest results for {mbox_subject}"
|
subject_line = f"Patchtest results for {mbox_subject}"
|
||||||
|
|
||||||
if "FAIL" in testresult:
|
if "FAIL" in testresult:
|
||||||
|
reply_contents = None
|
||||||
|
if len(max(open(result_file, 'r'), key=len)) > 220:
|
||||||
|
warning = "Tests failed for the patch, but the results log could not be processed due to excessive result line length."
|
||||||
|
reply_contents = greeting + warning + suggestions
|
||||||
|
else:
|
||||||
|
reply_contents = greeting + testresult + suggestions
|
||||||
|
|
||||||
ses_client = boto3.client('ses', region_name='us-west-2')
|
ses_client = boto3.client('ses', region_name='us-west-2')
|
||||||
response = ses_client.send_email(
|
response = ses_client.send_email(
|
||||||
Source='patchtest@automation.yoctoproject.org',
|
Source='patchtest@automation.yoctoproject.org',
|
||||||
|
|
Loading…
Reference in New Issue
Block a user