Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • opensrc/libehp
1 result
Show changes
Commits on Source (21)
......@@ -17,24 +17,23 @@
import os
Import('env')
myenv=env.Clone();
myenv.Replace(debug=ARGUMENTS.get("debug",0))
myenv.Append(CFLAGS=" -DUSE_ELFIO=1 ")
myenv.Append(CXXFLAGS=" -DUSE_ELFIO=1 ")
if int(myenv['debug']) == 1:
env.Replace(debug=ARGUMENTS.get("debug",0))
env.Append(CFLAGS=" -DUSE_ELFIO=1 ")
env.Append(CXXFLAGS=" -DUSE_ELFIO=1 ")
if int(env['debug']) == 1:
print "Setting debug mode"
myenv.Append(CFLAGS=" -g ")
myenv.Append(CXXFLAGS=" -g ")
myenv.Append(LINKFLAGS=" -g ")
env.Append(CFLAGS=" -g ")
env.Append(CXXFLAGS=" -g ")
env.Append(LINKFLAGS=" -g ")
else:
print "Setting release mode"
myenv.Append(CFLAGS=" -O3 ")
myenv.Append(CXXFLAGS=" -O3 ")
myenv.Append(LINKFLAGS=" -O3 ")
env.Append(CFLAGS=" -O3 ")
env.Append(CXXFLAGS=" -O3 ")
env.Append(LINKFLAGS=" -O3 ")
lib=myenv.SConscript("src/SConscript")
lib=env.SConscript("src/SConscript")
Return('lib')
......@@ -19,6 +19,9 @@
env=Environment()
Export('env')
env.Replace(debug=ARGUMENTS.get("debug",0))
lib=SConscript("SConscript")
Return('lib')
name: 'baseline afl config'
fuzzing-time: '120 minutes'
fuzzing-time: '10 minutes'
input-timeout: '30 seconds'
memory-limit: '50 MB'
num-cores: 2
working-dir: /tmp/afl
working-dir: /tmp/libehp-fuzzing
......@@ -19,14 +19,20 @@ function main()
turbo-cli boost add libehp || true
local bid=$(turbo-cli boost list|grep libehp|cut -d" " -f1)
# add seeds, ignore errors if they already exist.
turbo-cli seed add $bid cicd_testing/ehp-seed.yaml || true
turbo-cli seed add $bid cicd_testing/ehp-seed2.yaml || true
turbo-cli seed add $bid cicd_testing/ehp-seed3.yaml || true
turbo-cli seed add $bid cicd_testing/ehp-seed4.yaml || true
local vid=$(turbo-cli version add -q $bid lib/libehp.so)
turbo-cli fuzz --fuzz-config cicd_testing/afl.yaml --app-config cicd_testing/ehp-config.yaml --ver-id $vid
local report="$(turbo-cli log get report $vid)"
echo "The report is: "
echo "$report"
echo "$report" | tee fail_report.yaml
local declare crash_count=$(echo "$report"|shyaml get-value failing-input-count)
......@@ -34,6 +40,38 @@ function main()
echo "No crashes found"
exit 0
else
set -x
# upload the report.
local proj_id=114
local upload_report=$(curl --request POST --header "PRIVATE-TOKEN: PXLgVFpgjmmugAiHTJzx " --form "file=@fail_report.yaml" https://git.zephyr-software.com/api/v4/projects/$proj_id/uploads)
local date=$(date)
local mach=$(uname -a)
local host=$(hostname)
local md=$(echo $upload_report | shyaml get-value markdown)
local desc=""
set +e # allow read to return non-zero as read does that on EOF
read -r -d '' desc << EOM
Turbo automatically found $crash_count crashes!
Host: $host
Date: $date
Machine details: $mach
Full crash report is available here: $md
See [job details](https://git.zephyr-software.com/opensrc/libehp/-/jobs/$CI_JOB_ID)
and [pipeline details](https://git.zephyr-software.com/opensrc/libehp/pipelines/$CI_PIPELINE_ID).
EOM
set -e
local title="Turbo found $crash_count bugs in libEHP on $date"
# finally post an issue
curl --request POST --data-urlencode "description=$desc" --data-urlencode "title=$title" --header "PRIVATE-TOKEN: PXLgVFpgjmmugAiHTJzx " "https://git.zephyr-software.com//api/v4/projects/$proj_id/issues?&labels=bug,turbo&assignee_ids[]=3"
echo "$crash_count count crashes found!"
exit 1
fi
......
name: long ls
cmdline:
- test/test.exe
- filename: foo.exe
env: ~
network: ~
files:
- name: foo.exe
contents: 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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBQAAwAQAAAEAAAABAAAADAAAAHgDAAANAAAAxAUAABkAAADYHgAAGwAAAAQAAAAaAAAA3B4AABwAAAAEAAAA9f7/b6wBAAAFAAAATAIAAAYAAADMAQAACgAAAJsAAAALAAAAEAAAABUAAAAAAAAAAwAAANgfAAACAAAAEAAAABQAAAARAAAAFwAAAGgDAAARAAAAKAMAABIAAABAAAAAEwAAAAgAAAAeAAAACAAAAPv//28BAAAI/v//b/gCAAD///9vAQAAAPD//2/oAgAA+v//bwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4B4AAAAAAAAAAAAAtgMAAMYDAAAAAAAAAAAAAAAAAAAdBQAAAAAAAAAAAAAEIAAAR0NDOiAoVWJ1bnR1IDcuNC4wLTF1YnVudHUxfjE4LjA0LjEpIDcuNC4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQBAAAAAAAAAwABAAAAAABoAQAAAAAAAAMAAgAAAAAAiAEAAAAAAAADAAMAAAAAAKwBAAAAAAAAAwAEAAAAAADMAQAAAAAAAAMABQAAAAAATAIAAAAAAAADAAYAAAAAAOgCAAAAAAAAAwAHAAAAAAD4AgAAAAAAAAMACAAAAAAAKAMAAAAAAAADAAkAAAAAAGgDAAAAAAAAAwAKAAAAAAB4AwAAAAAAAAMACwAAAAAAoAMAAAAAAAADAAwAAAAAANADAAAAAAAAAwANAAAAAADgAwAAAAAAAAMADgAAAAAAxAUAAAAAAAADAA8AAAAAANgFAAAAAAAAAwAQAAAAAADoBQAAAAAAAAMAEQAAAAAAHAYAAAAAAAADABIAAAAAANgeAAAAAAAAAwATAAAAAADcHgAAAAAAAAMAFAAAAAAA4B4AAAAAAAADABUAAAAAANgfAAAAAAAAAwAWAAAAAAAAIAAAAAAAAAMAFwAAAAAACCAAAAAAAAADABgAAAAAAAAAAAAAAAAAAwAZAAEAAAAAAAAAAAAAAAQA8f8MAAAAMAQAAAAAAAACAA4ADgAAAHAEAAAAAAAAAgAOACEAAADABAAAAAAAAAIADgA3AAAACCAAAAEAAAABABgARgAAANweAAAAAAAAAQAUAG0AAAAQBQAAAAAAAAIADgB5AAAA2B4AAAAAAAABABMAAAAAAAAAAAAAAAAABADx/wEAAAAAAAAAAAAAAAQA8f+YAAAAAAcAAAAAAAABABIAAAAAAAAAAAAAAAAABADx/6YAAADcHgAAAAAAAAAAEwC3AAAA4B4AAAAAAAABABUAwAAAANgeAAAAAAAAAAATANMAAADoBQAAAAAAAAAAEQDmAAAA2B8AAAAAAAABABYA/AAAAMAFAAACAAAAEgAOAAwBAAAAAAAAAAAAACAAAAAoAQAAIAQAAAQAAAASAg4AeQEAAAAgAAAAAAAAIAAXAD4BAAAIIAAAAAAAABAAFwAGAQAAxAUAAAAAAAASAA8ARQEAABkFAAAAAAAAEgIOAFsBAAAAAAAAAAAAACIAAAB3AQAAACAAAAAAAAAQABcAhAEAAAAAAAAAAAAAEgAAAJQBAAAAAAAAAAAAACAAAACjAQAABCAAAAAAAAARAhcAsAEAANwFAAAEAAAAEQAQAL8BAAAAAAAAAAAAABIAAADcAQAAYAUAAF0AAAASAA4AsgAAAAwgAAAAAAAAEAAYAH0BAADgAwAAAAAAABIADgDsAQAA2AUAAAQAAAARABAA8wEAAAggAAAAAAAAEAAYAP8BAAAdBQAAOwAAABIADgAEAgAACCAAAAAAAAARAhcAEAIAAAAAAAAAAAAAIAAAAOYBAAB4AwAAAAAAABIACwAAY3J0c3R1ZmYuYwBkZXJlZ2lzdGVyX3RtX2Nsb25lcwBfX2RvX2dsb2JhbF9kdG9yc19hdXgAY29tcGxldGVkLjcyODIAX19kb19nbG9iYWxfZHRvcnNfYXV4X2ZpbmlfYXJyYXlfZW50cnkAZnJhbWVfZHVtbXkAX19mcmFtZV9kdW1teV9pbml0X2FycmF5X2VudHJ5AF9fRlJBTUVfRU5EX18AX19pbml0X2FycmF5X2VuZABfRFlOQU1JQwBfX2luaXRfYXJyYXlfc3RhcnQAX19HTlVfRUhfRlJBTUVfSERSAF9HTE9CQUxfT0ZGU0VUX1RBQkxFXwBfX2xpYmNfY3N1X2ZpbmkAX0lUTV9kZXJlZ2lzdGVyVE1DbG9uZVRhYmxlAF9feDg2LmdldF9wY190aHVuay5ieABfZWRhdGEAX194ODYuZ2V0X3BjX3RodW5rLmR4AF9fY3hhX2ZpbmFsaXplQEBHTElCQ18yLjEuMwBfX2RhdGFfc3RhcnQAcHV0c0BAR0xJQkNfMi4wAF9fZ21vbl9zdGFydF9fAF9fZHNvX2hhbmRsZQBfSU9fc3RkaW5fdXNlZABfX2xpYmNfc3RhcnRfbWFpbkBAR0xJQkNfMi4wAF9fbGliY19jc3VfaW5pdABfZnBfaHcAX19ic3Nfc3RhcnQAbWFpbgBfX1RNQ19FTkRfXwBfSVRNX3JlZ2lzdGVyVE1DbG9uZVRhYmxlAAAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC5pbnRlcnAALm5vdGUuQUJJLXRhZwAubm90ZS5nbnUuYnVpbGQtaWQALmdudS5oYXNoAC5keW5zeW0ALmR5bnN0cgAuZ251LnZlcnNpb24ALmdudS52ZXJzaW9uX3IALnJlbC5keW4ALnJlbC5wbHQALmluaXQALnBsdC5nb3QALnRleHQALmZpbmkALnJvZGF0YQAuZWhfZnJhbWVfaGRyAC5laF9mcmFtZQAuaW5pdF9hcnJheQAuZmluaV9hcnJheQAuZHluYW1pYwAuZGF0YQAuYnNzAC5jb21tZW50AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAAAABAAAAAgAAAFQBAABUAQAAEwAAAAAAAAAAAAAAAQAAAAAAAAAjAAAABwAAAAIAAABoAQAAaAEAACAAAAAAAAAAAAAAAAQAAAAAAAAAMQAAAAcAAAACAAAAiAEAAIgBAAAkAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAD2//9vAgAAAKwBAACsAQAAIAAAAAUAAAAAAAAABAAAAAQAAABOAAAACwAAAAIAAADMAQAAzAEAAIAAAAAGAAAAAQAAAAQAAAAQAAAAVgAAAAMAAAACAAAATAIAAEwCAACbAAAAAAAAAAAAAAABAAAAAAAAAF4AAAD///9vAgAAAOgCAADoAgAAEAAAAAUAAAAAAAAAAgAAAAIAAABrAAAA/v//bwIAAAD4AgAA+AIAADAAAAAGAAAAAQAAAAQAAAAAAAAAegAAAAkAAAACAAAAKAMAACgDAABAAAAABQAAAAAAAAAEAAAACAAAAIMAAAAJAAAAQgAAAGgDAABoAwAAEAAAAAUAAAAWAAAABAAAAAgAAACMAAAAAQAAAAYAAAB4AwAAeAMAACMAAAAAAAAAAAAAAAQAAAAAAAAAhwAAAAEAAAAGAAAAoAMAAKADAAAwAAAAAAAAAAAAAAAQAAAABAAAAJIAAAABAAAABgAAANADAADQAwAAEAAAAAAAAAAAAAAACAAAAAgAAACbAAAAAQAAAAYAAADgAwAA4AMAAOIBAAAAAAAAAAAAABAAAAAAAAAAoQAAAAEAAAAGAAAAxAUAAMQFAAAUAAAAAAAAAAAAAAAEAAAAAAAAAKcAAAABAAAAAgAAANgFAADYBQAADgAAAAAAAAAAAAAABAAAAAAAAACvAAAAAQAAAAIAAADoBQAA6AUAADQAAAAAAAAAAAAAAAQAAAAAAAAAvQAAAAEAAAACAAAAHAYAABwGAADoAAAAAAAAAAAAAAAEAAAAAAAAAMcAAAAOAAAAAwAAANgeAADYDgAABAAAAAAAAAAAAAAABAAAAAQAAADTAAAADwAAAAMAAADcHgAA3A4AAAQAAAAAAAAAAAAAAAQAAAAEAAAA3wAAAAYAAAADAAAA4B4AAOAOAAD4AAAABgAAAAAAAAAEAAAACAAAAJYAAAABAAAAAwAAANgfAADYDwAAKAAAAAAAAAAAAAAABAAAAAQAAADoAAAAAQAAAAMAAAAAIAAAABAAAAgAAAAAAAAAAAAAAAQAAAAAAAAA7gAAAAgAAAADAAAACCAAAAgQAAAEAAAAAAAAAAAAAAABAAAAAAAAAPMAAAABAAAAMAAAAAAAAAAIEAAAKwAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAgAAAAAAAAAAAAAANBAAACAEAAAbAAAAKwAAAAQAAAAQAAAACQAAAAMAAAAAAAAAAAAAAFQUAAAqAgAAAAAAAAAAAAABAAAAAAAAABEAAAADAAAAAAAAAAAAAAB+FgAA/AAAAAAAAAAAAAAAAQAAAAAAAAA=
perms: rw
\ No newline at end of file
name: long ls
cmdline:
- test/test.exe
- filename: foo.exe
env: ~
network: ~
files:
- name: foo.exe
contents: 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T7gAAAAASIPECMO/AQAAAOjb/f//xgAEugAAAABIjTXsDiAASInH6FT+//+/BAAAAOi6/f//xwADAAAAugAAAABIjTWoDiAASInH6DD+//+/BAAAAOiW/f//xwDD9UhAugAAAABIjTWUDiAASInH6Az+//9VU0iD7AjoS////4nFugkAAABIjTVYAgAASI09nBEgAOiH/f//SIsFkBEgAEiLQOhIjRWFESAASIucAvAAAABIhdt0KoB7OAB0KQ+2Q0MPvvBIjT1kESAA6O/8//9IicfoJ/3//4noSIPECFtdw+hp/f//SInf6EH9//9IiwO+CgAAAEiJ3/9QMOvDSInHSIP6AXQF6JP9///ovvz//w+2KLoQAAAASI01zgEAAEiNPQgRIADo8/z//0APvu2J7kiNPfYQIADoUf3//0iJx+iZ/P//6CT9///ri0iJw+ga/f//SInf6EL9//9T6BD////rSEiJx0iD+gF1Qehc/P//ixi6EAAAAEiNNX4BAABIjT2nECAA6JL8//+J3kiNPZkQIADo9Pz//0iJx+g8/P//6Mf8//+4AQAAAFvD6Bv8//+6EwAAAEiNNVABAABIjT1oECAA6FP8//9IjT1cECAA6Af8///okvz//7gBAAAA68lIicPog/z//0iJ3+ir/P//SInD6HP8//9Iid/om/z//0iD7AhIjT0xESAA6Ev8//9IjRXcDyAASI01HhEgAEiLPb4PIADo4fv//0iDxAjDZi4PH4QAAAAAAGaQQVdBVkmJ10FVQVRMjSWGDCAAVUiNLY4MIABTQYn9SYn2TCnlSIPsCEjB/QPoJ/v//0iF7XQgMdsPH4QAAAAAAEyJ+kyJ9kSJ70H/FNxIg8MBSDnddepIg8QIW11BXEFdQV5BX8OQZi4PH4QAAAAAAPPDAABIg+wISIPECMMAAAABAAIAVEhST1dfQ0hBUgBUSFJPV19JTlQAVEhST1dfRkxPQVQATm8gdGhyb3chAGZvbyBjYXVnaHQgY2hhcjoAbWFpbiBjYXVnaHQgaW50OgBtYWluIGNhdWdodCB1bm5hbWVkAAAAAAEbAztUAAAACQAAAIj6//+gAAAAiPv//8gAAACY+///cAAAAKL8///gAAAATP3//xwBAAA2/v//TAEAAN3+//9wAQAAGP///4gBAACI////0AEAAAAAAAAUAAAAAAAAAAF6UgABeBABGwwHCJABBxAUAAAAHAAAACD7//8rAAAAAAAAAAAAAAAUAAAAAAAAAAF6UgABeBABGwwHCJABAAAkAAAAHAAAAOD5//8AAQAAAA4QRg4YSg8LdwiAAD8aOyozJCIAAAAAFAAAAEQAAAC4+v//CAAAAAAAAAAAAAAAGAAAAFwAAAC6+///qgAAAABEDhB8Cg4IQQsAABwAAAAAAAAAAXpQTFIAAXgQB5vZDSAAGxsMBwiQAQAALAAAACQAAAAo/P//6gAAAAS7AAAAQQ4QhgJBDhiDA0QOIAJlCg4YQQ4QQQ4IQQsAIAAAAFQAAADi/P//pwAAAASrAAAAQQ4QgwICUAoOCEELAAAAFAAAAOwAAABl/f//LwAAAABEDhBqDggARAAAAAQBAACI/f//ZQAAAABCDhCPAkIOGI4DRQ4gjQRCDiiMBUgOMIYGSA44gwdNDkByDjhBDjBBDihCDiBCDhhCDhBCDggAEAAAAEwBAACw/f//AgAAAAAAAAAAAAAA/5sdARQGBYsBASB5AAC0AR/aAQDlAQUAAAEAANQMIAD/myUBFwEFCAMrG4cBAGoRlwEAexwAAKIBBQAAAgABfQAAAAC0DCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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QEBDWFhBQklfMS4zAF9aTlNvM3B1dEVjQEBHTElCQ1hYXzMuNABfZWRhdGEARFcucmVmLl9aVEljAF9JT19zdGRpbl91c2VkAF9fY3hhX2JlZ2luX2NhdGNoQEBDWFhBQklfMS4zAF9fY3hhX2ZpbmFsaXplQEBHTElCQ18yLjIuNQBtYWluAF9aU3Q0ZW5kbEljU3QxMWNoYXJfdHJhaXRzSWNFRVJTdDEzYmFzaWNfb3N0cmVhbUlUX1QwX0VTNl9AQEdMSUJDWFhfMy40AF9fY3hhX2FsbG9jYXRlX2V4Y2VwdGlvbkBAQ1hYQUJJXzEuMwBfX2Rzb19oYW5kbGUARFcucmVmLl9fZ3h4X3BlcnNvbmFsaXR5X3YwAF9aTlNvNWZsdXNoRXZAQEdMSUJDWFhfMy40AF9fY3hhX2F0ZXhpdEBAR0xJQkNfMi4yLjUAX19UTUNfRU5EX18AX1pTdDE2X19vc3RyZWFtX2luc2VydEljU3QxMWNoYXJfdHJhaXRzSWNFRVJTdDEzYmFzaWNfb3N0cmVhbUlUX1QwX0VTNl9QS1MzX2xAQEdMSUJDWFhfMy40LjkAX1pOS1N0NWN0eXBlSWNFMTNfTV93aWRlbl9pbml0RXZAQEdMSUJDWFhfMy40LjExAGdldGVudkBAR0xJQkNfMi4yLjUAX1pTdDE2X190aHJvd19iYWRfY2FzdHZAQEdMSUJDWFhfMy40AF9aU3Q0Y291dEBAR0xJQkNYWF8zLjQAX19kYXRhX3N0YXJ0AF9aVElmQEBDWFhBQklfMS4zAF9fYnNzX3N0YXJ0AF9aM2Zvb3YAX1pOU3Q4aW9zX2Jhc2U0SW5pdEMxRXZAQEdMSUJDWFhfMy40AF9fbGliY19jc3VfaW5pdABfX2N4YV9lbmRfY2F0Y2hAQENYWEFCSV8xLjMAX19neHhfcGVyc29uYWxpdHlfdjBAQENYWEFCSV8xLjMARFcucmVmLl9aVElpAF9fY3hhX3Rocm93QEBDWFhBQklfMS4zAF9aTlNvbHNFaUBAR0xJQkNYWF8zLjQAX0lUTV9kZXJlZ2lzdGVyVE1DbG9uZVRhYmxlAF9VbndpbmRfUmVzdW1lQEBHQ0NfMy4wAF9fbGliY19jc3VfZmluaQBfX2xpYmNfc3RhcnRfbWFpbkBAR0xJQkNfMi4yLjUAX19n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AAAAAAAdIAAAAAAAAB0AAAAAAAAwAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAABAAAGAAAAAwAAAAAAAAAwHSAAAAAAADAdAAAAAAAAEAIAAAAAAAAGAAAAAAAAAAgAAAAAAAAAEAAAAAAAAACYAAAAAQAAAAMAAAAAAAAAQB8gAAAAAABAHwAAAAAAAMAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACQEAAAEAAAADAAAAAAAAAAAgIAAAAAAAACAAAAAAAAAoAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAA8BAAAIAAAAAwAAAAAAAABAICAAAAAAACggAAAAAAAAGAEAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAUAQAAAQAAADAAAAAAAAAAAAAAAAAAAAAoIAAAAAAAACsAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAWCAAAAAAAACgCAAAAAAAAB0AAAAvAAAACAAAAAAAAAAYAAAAAAAAAAkAAAADAAAAAAAAAAAAAAAAAAAAAAAAAPgoAAAAAAAAGQUAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAARLgAAAAAAAB0BAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA
perms: rw
\ No newline at end of file
name: long ls
cmdline:
- test/test.exe
- filename: foo.exe
env: ~
network: ~
files:
- name: foo.exe
contents: f0VMRgEBAQAAAAAAAAAAAAMAAwABAAAAUAkAADQAAACcLAAAAAAAADQAIAAJACgAHgAdAAYAAAA0AAAANAAAADQAAAAgAQAAIAEAAAQAAAAEAAAAAwAAAFQBAABUAQAAVAEAABMAAAATAAAABAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAIBEAACARAAAFAAAAABAAAAEAAAB4HgAAeC4AAHguAACcAQAAoAEAAAYAAAAAEAAAAgAAAIQeAACELgAAhC4AAAgBAAAIAQAABgAAAAQAAAAEAAAAaAEAAGgBAABoAQAARAAAAEQAAAAEAAAABAAAAFDldGRkDgAAZA4AAGQOAABUAAAAVAAAAAQAAAAEAAAAUeV0ZAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAABAAAABS5XRkeB4AAHguAAB4LgAAiAEAAIgBAAAEAAAAAQAAAC9saWIvbGQtbGludXguc28uMgAABAAAABAAAAABAAAAR05VAAAAAAADAAAAAgAAAAAAAAAEAAAAFAAAAAMAAABHTlUAYPSBBz0w61qXnsgZvIH1l+fZz3oCAAAAGwAAAAEAAAAFAAAAACAAIAAAAAAbAAAArUvjwAAAAAAAAAAAAAAAAAAAAAC7AQAAAAAAAAAAAAARAAAAUQEAAAAAAAAAAAAAEgAAAC0CAAAAAAAAAAAAACIAAACJAAAAAAAAAAAAAAASAAAAmwAAAAAAAAAAAAAAEgAAAHUBAAAAAAAAAAAAABIAAABvAAAAAAAAAAAAAAASAAAAGQIAAAAAAAAAAAAAEgAAACYCAAAAAAAAAAAAABIAAAA8AgAAAAAAAAAAAAASAAAAjgEAAAAAAAAAAAAAEgAAAMEBAAAAAAAAAAAAABIAAABVAAAAAAAAAAAAAAARAAAA1gAAAAAAAAAAAAAAEgAAALUBAAAAAAAAAAAAABEAAABdAQAAAAAAAAAAAAASAAAAXwAAAAAAAAAAAAAAEgAAADwBAAAAAAAAAAAAABIAAAB9AAAAAAAAAAAAAAASAAAA2QEAAAAAAAAAAAAAEgAAAB8AAAAAAAAAAAAAACAAAADxAQAAAAAAAAAAAAASAAAAEAAAAAAAAAAAAAAAIAAAADsAAAAAAAAAAAAAACAAAACvAQAAAAAAAAAAAAARAAAAJAEAAAAAAAAAAAAAEgAAAAoCAAD8DQAABAAAABEAEAAAbGlic3RkYysrLnNvLjYAX19nbW9uX3N0YXJ0X18AX0lUTV9kZXJlZ2lzdGVyVE1DbG9uZVRhYmxlAF9JVE1fcmVnaXN0ZXJUTUNsb25lVGFibGUAX1pTdDRjb3V0AF9fY3hhX2VuZF9jYXRjaABfWk5TbzVmbHVzaEV2AF9fY3hhX3Rocm93AF9fY3hhX2JlZ2luX2NhdGNoAF9aU3Q0ZW5kbEljU3QxMWNoYXJfdHJhaXRzSWNFRVJTdDEzYmFzaWNfb3N0cmVhbUlUX1QwX0VTNl8AX1pTdDE2X19vc3RyZWFtX2luc2VydEljU3QxMWNoYXJfdHJhaXRzSWNFRVJTdDEzYmFzaWNfb3N0cmVhbUlUX1QwX0VTNl9QS1MzX2kAX1pOU3Q4aW9zX2Jhc2U0SW5pdEQxRXYAX19neHhfcGVyc29uYWxpdHlfdjAAX1pOU28zcHV0RWMAX1pOU3Q4aW9zX2Jhc2U0SW5pdEMxRXYAX19jeGFfYWxsb2NhdGVfZXhjZXB0aW9uAF9aTktTdDVjdHlwZUljRTEzX01fd2lkZW5faW5pdEV2AF9aVEljAF9aVElmAF9aVElpAF9aU3QxNl9fdGhyb3dfYmFkX2Nhc3R2AF9aTlNvbHNFaQBsaWJnY2Nfcy5zby4xAF9VbndpbmRfUmVzdW1lAGxpYmMuc28uNgBfSU9fc3RkaW5fdXNlZABfX2N4YV9hdGV4aXQAZ2V0ZW52AF9fY3hhX2ZpbmFsaXplAF9fbGliY19zdGFydF9tYWluAEdDQ18zLjAAR0xJQkNfMi4wAEdMSUJDXzIuMS4zAEdMSUJDWFhfMy40LjkAR0xJQkNYWF8zLjQuMTEAR0xJQkNYWF8zLjQAQ1hYQUJJXzEuMwAAAAIAAwAEAAIAAwACAAMABAAFAAUABgADAAMABwACAAMAAgACAAIAAwAAAAgAAAAAAAIAAwABAAEAAQDjAQAAEAAAACAAAABQJnkLAAAIAE4CAAAAAAAAAQACAAACAAAQAAAAMAAAABBpaQ0AAAUAVgIAABAAAABzH2kJAAAEAGACAAAAAAAAAQAEAAEAAAAQAAAAAAAAAIl/KQIAAAcAbAIAABAAAABh+JcCAAAGAHoCAAAQAAAAdCmSCAAAAwCJAgAAEAAAANOvawUAAAIAlQIAAAAAAAB4LgAACAAAAHwuAAAIAAAAgC4AAAgAAADgLwAACAAAAAQwAAAIAAAA2C8AAAYBAAAMMAAAAQEAANwvAAAGAwAA5C8AAAYNAADoLwAABg8AAOwvAAAGFQAA8C8AAAYXAAD0LwAABhgAAPgvAAAGGQAACDAAAAEZAAD8LwAABhoAABAwAAABEgAAmC8AAAcCAACcLwAABwQAAKAvAAAHBQAApC8AAAcGAACoLwAABwcAAKwvAAAHCAAAsC8AAAcJAAC0LwAABwoAALgvAAAHCwAAvC8AAAcMAADALwAABw4AAMQvAAAHEAAAyC8AAAcRAADMLwAABxMAANAvAAAHFAAA1C8AAAcWAABTg+wI6HsBAACBw3cnAACLg2QAAACFwHQF6B4BAACDxAhbwwD/swQAAAD/owgAAAAAAAAA/6MMAAAAaAAAAADp4P////+jEAAAAGgIAAAA6dD/////oxQAAABoEAAAAOnA/////6MYAAAAaBgAAADpsP////+jHAAAAGggAAAA6aD/////oyAAAABoKAAAAOmQ/////6MkAAAAaDAAAADpgP////+jKAAAAGg4AAAA6XD/////oywAAABoQAAAAOlg/////6MwAAAAaEgAAADpUP////+jNAAAAGhQAAAA6UD/////ozgAAABoWAAAAOkw/////6M8AAAAaGAAAADpIP////+jQAAAAGhoAAAA6RD/////o0QAAABocAAAAOkA/////6NIAAAAaHgAAADp8P7///+jUAAAAGaQ/6NkAAAAZpAx7V6J4YPk8FBUUugiAAAAgcMsJgAAjYNU3v//UI2D9N3//1BRVv+zVAAAAOgv////9IscJMNmkGaQZpBmkGaQixwkw2aQZpBmkGaQZpBmkOjkAAAAgcLnJQAAjYqIAAAAjYKIAAAAOch0HYuCYAAAAIXAdBNVieWD7BRR/9CDxBDJw5CNdCYA88ONtgAAAADopAAAAIHCpyUAAFWNiogAAACNgogAAAApyInlU8H4AonDg+wEwesfAdjR+HQUi5JoAAAAhdJ0CoPsCFBR/9KDxBCLXfzJw4n2jbwnAAAAAFWJ5VPoV////4HDUyUAAIPsBIC7iAAAAAB1J4uDUAAAAIXAdBGD7Az/s3gAAADo3f7//4PEEOg1////xoOIAAAAAYtd/MnDifaNvCcAAAAAVYnlXelX////ixQk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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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cmFtZV9kdW1teV9pbml0X2FycmF5X2VudHJ5AHNpbXBsZV90aHJvdy5jcHAAX0dMT0JBTF9fc3ViX0lfX1ozYmFydgBfWlN0TDhfX2lvaW5pdABfX0ZSQU1FX0VORF9fAF9fR05VX0VIX0ZSQU1FX0hEUgBfRFlOQU1JQwBfX2luaXRfYXJyYXlfZW5kAF9faW5pdF9hcnJheV9zdGFydABfR0xPQkFMX09GRlNFVF9UQUJMRV8AX1pUSWlAQENYWEFCSV8xLjMAX1pOU28zcHV0RWNAQEdMSUJDWFhfMy40AF9fY3hhX2ZpbmFsaXplQEBHTElCQ18yLjEuMwBfZWRhdGEARFcucmVmLl9aVEljAF9JT19zdGRpbl91c2VkAF9fY3hhX2JlZ2luX2NhdGNoQEBDWFhBQklfMS4zAF9mcF9odwBtYWluAF9aU3Q0ZW5kbEljU3QxMWNoYXJfdHJhaXRzSWNFRVJTdDEzYmFzaWNfb3N0cmVhbUlUX1QwX0VTNl9AQEdMSUJDWFhfMy40AF9fY3hhX2FsbG9jYXRlX2V4Y2VwdGlvbkBAQ1hYQUJJXzEuMwBfX2Rzb19oYW5kbGUARFcucmVmLl9fZ3h4X3BlcnNvbmFsaXR5X3YwAF9aTlNvNWZsdXNoRXZAQEdMSUJDWFhfMy40AF9fY3hhX2F0ZXhpdEBAR0xJQkNfMi4xLjMAX194ODYuZ2V0X3BjX3RodW5rLmJ4AGdldGVudkBAR0xJQkNfMi4wAF9fbGliY19zdGFydF9tYWluQEBHTElCQ18yLjAAX19UTUNfRU5EX18AX1pOS1N0NWN0eXBlSWNFMTNfTV93aWRlbl9pbml0RXZAQEdMSUJDWFhfMy40LjExAF9aU3QxNl9fdGhyb3dfYmFkX2Nhc3R2QEBHTElCQ1hYXzMuNABfWlN0NGNvdXRAQEdMSUJDWFhfMy40AF9aU3QxNl9fb3N0cmVhbV9pbnNlcnRJY1N0MTFjaGFyX3RyYWl0c0ljRUVSU3QxM2Jhc2ljX29zdHJlYW1JVF9UMF9FUzZfUEtTM19pQEBHTElCQ1hYXzMuNC45AF9fZGF0YV9zdGFydABfX3g4Ni5nZXRfcGNfdGh1bmsuZHgAX1pUSWZAQENYWEFCSV8xLjMAX19ic3Nfc3RhcnQAX1ozZm9vdgBfWk5TdDhpb3NfYmFzZTRJbml0QzFFdkBAR0xJQkNYWF8zLjQAX19saWJjX2NzdV9pbml0AF9fY3hhX2VuZF9jYXRjaEBAQ1hYQUJJXzEuMwBfX2d4eF9wZXJzb25hbGl0eV92MEBAQ1hYQUJJXzEuMwBEVy5yZWYuX1pUSWkAX19jeGFfdGhyb3dAQENYWEFCSV8xLjMAX1pOU29sc0VpQEBHTElCQ1hYXzMuNABfSVRNX2RlcmVnaXN0ZXJUTUNsb25lVGFibGUAX1Vud2luZF9SZXN1bWVAQEdDQ18zLjAAX19saWJjX2NzdV9maW5pAF9fZ21vbl9zdGFydF9fAF9JVE1fcmVnaXN0ZXJUTUNsb25lVGFibGUAX1pUSWNAQENYWEFCSV8xLjMAX194ODYuZ2V0X3BjX3RodW5rLnNpAF9aTlN0OGlvc19iYXNlNEluaXREMUV2QEBHTElCQ1hYXzMuNAAALnN5bXRhYgAuc3RydGFiAC5zaHN0cnRhYgAuaW50ZXJwAC5ub3RlLkFCSS10YWcALm5vdGUuZ251LmJ1aWxkLWlkAC5nbnUuaGFzaAAuZHluc3ltAC5keW5zdHIALmdudS52ZXJzaW9uAC5nbnUudmVyc2lvbl9yAC5yZWwuZHluAC5yZWwucGx0AC5pbml0AC5wbHQuZ290AC50ZXh0AC5maW5pAC5yb2RhdGEALmVoX2ZyYW1lX2hkcgAuZWhfZnJhbWUALmdjY19leGNlcHRfdGFibGUALmluaXRfYXJyYXkALmZpbmlfYXJyYXkALmR5bmFtaWMALmRhdGEALmJzcwAuY29tbWVudAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAEAAAACAAAAVAEAAFQBAAATAAAAAAAAAAAAAAABAAAAAAAAACMAAAAHAAAAAgAAAGgBAABoAQAAIAAAAAAAAAAAAAAABAAAAAAAAAAxAAAABwAAAAIAAACIAQAAiAEAACQAAAAAAAAAAAAAAAQAAAAAAAAARAAAAPb//28CAAAArAEAAKwBAAAgAAAABQAAAAAAAAAEAAAABAAAAE4AAAALAAAAAgAAAMwBAADMAQAAwAEAAAYAAAABAAAABAAAABAAAABWAAAAAwAAAAIAAACMAwAAjAMAAKACAAAAAAAAAAAAAAEAAAAAAAAAXgAAAP///28CAAAALAYAACwGAAA4AAAABQAAAAAAAAACAAAAAgAAAGsAAAD+//9vAgAAAGQGAABkBgAAoAAAAAYAAAADAAAABAAAAAAAAAB6AAAACQAAAAIAAAAEBwAABAcAAIgAAAAFAAAAAAAAAAQAAAAIAAAAgwAAAAkAAABCAAAAjAcAAIwHAACAAAAABQAAABcAAAAEAAAACAAAAIwAAAABAAAABgAAAAwIAAAMCAAAIwAAAAAAAAAAAAAABAAAAAAAAACHAAAAAQAAAAYAAAAwCAAAMAgAABABAAAAAAAAAAAAABAAAAAEAAAAkgAAAAEAAAAGAAAAQAkAAEAJAAAQAAAAAAAAAAAAAAAIAAAACAAAAJsAAAABAAAABgAAAFAJAABQCQAAkgQAAAAAAAAAAAAAEAAAAAAAAAChAAAAAQAAAAYAAADkDQAA5A0AABQAAAAAAAAAAAAAAAQAAAAAAAAApwAAAAEAAAACAAAA+A0AAPgNAABpAAAAAAAAAAAAAAAEAAAAAAAAAK8AAAABAAAAAgAAAGQOAABkDgAAVAAAAAAAAAAAAAAABAAAAAAAAAC9AAAAAQAAAAIAAAC4DgAAuA4AABwCAAAAAAAAAAAAAAQAAAAAAAAAxwAAAAEAAAACAAAA1BAAANQQAABMAAAAAAAAAAAAAAAEAAAAAAAAANkAAAAOAAAAAwAAAHguAAB4HgAACAAAAAAAAAAAAAAABAAAAAQAAADlAAAADwAAAAMAAACALgAAgB4AAAQAAAAAAAAAAAAAAAQAAAAEAAAA8QAAAAYAAAADAAAAhC4AAIQeAAAIAQAABgAAAAAAAAAEAAAACAAAAJYAAAABAAAAAwAAAIwvAACMHwAAdAAAAAAAAAAAAAAABAAAAAQAAAD6AAAAAQAAAAMAAAAAMAAAACAAABQAAAAAAAAAAAAAAAQAAAAAAAAAAAEAAAgAAAADAAAAFDAAABQgAAAEAAAAAAAAAAAAAAABAAAAAAAAAAUBAAABAAAAMAAAAAAAAAAUIAAAKwAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAgAAAAAAAAAAAAAAQCAAAPAFAAAcAAAALgAAAAQAAAAQAAAACQAAAAMAAAAAAAAAAAAAADAmAABeBQAAAAAAAAAAAAABAAAAAAAAABEAAAADAAAAAAAAAAAAAACOKwAADgEAAAAAAAAAAAAAAQAAAAAAAAA=
perms: rw
......@@ -21,11 +21,11 @@
#include <stdlib.h>
#include <string.h>
#include <map>
#include <assert.h>
#include <algorithm>
#include <memory>
#include <ehp.hpp>
#include "throw_assert.h"
#include "ehp_priv.hpp"
#include "scoop_replacement.hpp"
......@@ -137,7 +137,7 @@ bool eh_frame_util_t<ptrsize>::read_type_with_encoding
return true;
break;
}
assert(0);
throw_assert(0);
}
case DW_EH_PE_sdata2 :
......@@ -167,7 +167,7 @@ bool eh_frame_util_t<ptrsize>::read_type_with_encoding
case DW_EH_PE_signed :
default:
assert(0);
throw_assert(0);
};
switch(encoding_upper8)
......@@ -183,7 +183,7 @@ bool eh_frame_util_t<ptrsize>::read_type_with_encoding
case DW_EH_PE_aligned:
case DW_EH_PE_indirect:
default:
assert(0);
throw_assert(0);
return true;
}
return false;
......@@ -243,10 +243,12 @@ bool eh_frame_util_t<ptrsize>::read_sleb128 (
auto byte=uint8_t(0);
do
{
if ( position > max )
return true;
byte = data [position];
position++;
result |= ((byte & 0x7f)<< shift);
shift += 7;
position++;
} while( (byte & 0x80) != 0);
/* sign bit of byte is second high order bit (0x40) */
......@@ -442,7 +444,6 @@ void eh_program_insn_t<ptrsize>::print(uint64_t &pc, int64_t caf) const
if(eh_frame_util_t<ptrsize>::read_uleb128(uleb, pos, (const uint8_t* const)data.data(), max))
return ;
cout<<" def_cfa_expression "<<dec<<uleb<<endl;
pos+=uleb; // doing this old school for now, as we aren't printing the expression.
break;
}
case DW_CFA_expression:
......@@ -454,7 +455,6 @@ void eh_program_insn_t<ptrsize>::print(uint64_t &pc, int64_t caf) const
if(eh_frame_util_t<ptrsize>::read_uleb128(uleb2, pos, (const uint8_t* const)data.data(), max))
return ;
cout<<" expression "<<dec<<uleb1<<" "<<uleb2<<endl;
pos+=uleb2;
break;
}
case DW_CFA_val_expression:
......@@ -466,7 +466,6 @@ void eh_program_insn_t<ptrsize>::print(uint64_t &pc, int64_t caf) const
if(eh_frame_util_t<ptrsize>::read_uleb128(uleb2, pos, (const uint8_t* const)data.data(), max))
return ;
cout<<" val_expression "<<dec<<uleb1<<" "<<uleb2<<endl;
pos+=uleb2;
break;
}
case DW_CFA_def_cfa_offset_sf:
......@@ -753,18 +752,26 @@ bool eh_program_insn_t<ptrsize>::parse_insn(
case DW_CFA_set_loc:
pos+=ptrsize;
if(pos>max)
return true;
break;
case DW_CFA_advance_loc1:
pos+=1;
if(pos>max)
return true;
break;
case DW_CFA_advance_loc2:
pos+=2;
if(pos>max)
return true;
break;
case DW_CFA_advance_loc4:
pos+=4;
if(pos>max)
return true;
break;
case DW_CFA_offset_extended:
......@@ -796,6 +803,10 @@ bool eh_program_insn_t<ptrsize>::parse_insn(
if(eh_frame_util_t<ptrsize>::read_uleb128(uleb, pos, data, max))
return true;
pos+=uleb;
if(pos>max)
return true;
if(pos>max)
return true;
break;
}
case DW_CFA_expression:
......@@ -808,6 +819,8 @@ bool eh_program_insn_t<ptrsize>::parse_insn(
if(eh_frame_util_t<ptrsize>::read_uleb128(uleb2, pos, data, max))
return true;
pos+=uleb2;
if(pos>max)
return true;
break;
}
case DW_CFA_def_cfa_offset_sf:
......@@ -946,7 +959,7 @@ bool eh_program_insn_t<ptrsize>::advance(uint64_t &cur_addr, uint64_t CAF) const
{
case DW_CFA_set_loc:
{
assert(0);
throw_assert(0);
return true;
}
case DW_CFA_advance_loc1:
......@@ -1149,7 +1162,7 @@ bool cie_contents_t<ptrsize>::parse_cie(
return_address_register_column=return_address_register_column_64;
}
else
assert(0);
throw_assert(0);
auto augmentation_data_length=uint64_t(0);
if(augmentation.find("z") != string::npos)
......@@ -1319,7 +1332,7 @@ bool lsda_type_table_entry_t<ptrsize>::parse(
tt_encoding_size=ptrsize;
break;
default:
assert(0);
throw_assert(0);
}
const auto orig_act_pos=uint32_t(tt_pos+(-index*tt_encoding_size));
auto act_pos=uint32_t(tt_pos+(-index*tt_encoding_size));
......@@ -1382,23 +1395,24 @@ bool lsda_call_site_t<ptrsize>::parse_lcs(
const uint8_t cs_table_encoding,
uint32_t &pos,
const uint8_t* const data,
const uint64_t max, /* call site table max */
const uint64_t cs_max, /* call site table max */
const uint64_t data_addr,
const uint64_t landing_pad_base_addr,
const uint64_t gcc_except_table_max)
{
const auto smallest_max = min(cs_max,gcc_except_table_max);
call_site_addr_position = pos + data_addr;
if(this->read_type_with_encoding(cs_table_encoding, call_site_offset, pos, data, max, data_addr))
if(this->read_type_with_encoding(cs_table_encoding, call_site_offset, pos, data, smallest_max, data_addr))
return true;
call_site_addr=landing_pad_base_addr+call_site_offset;
call_site_end_addr_position = pos + data_addr;
if(this->read_type_with_encoding(cs_table_encoding, call_site_length, pos, data, max, data_addr))
if(this->read_type_with_encoding(cs_table_encoding, call_site_length, pos, data, smallest_max, data_addr))
return true;
call_site_end_addr=call_site_addr+call_site_length;
landing_pad_addr_position = pos + data_addr;
if(this->read_type_with_encoding(cs_table_encoding, landing_pad_offset, pos, data, max, data_addr))
if(this->read_type_with_encoding(cs_table_encoding, landing_pad_offset, pos, data, smallest_max, data_addr))
return true;
landing_pad_addr_end_position = pos + data_addr;
......@@ -1408,7 +1422,7 @@ bool lsda_call_site_t<ptrsize>::parse_lcs(
else
landing_pad_addr=landing_pad_base_addr+landing_pad_offset;
if(this->read_uleb128(action, pos, data, max))
if(this->read_uleb128(action, pos, data, smallest_max))
return true;
if(action == 0)
......@@ -1424,7 +1438,7 @@ bool lsda_call_site_t<ptrsize>::parse_lcs(
while(!end)
{
lsda_call_site_action_t<ptrsize> lcsa;
if(lcsa.parse_lcsa(act_table_pos, data, gcc_except_table_max, end))
if(lcsa.parse_lcsa(act_table_pos, data, smallest_max, end))
return true;
action_table.push_back(lcsa);
......@@ -1432,11 +1446,11 @@ bool lsda_call_site_t<ptrsize>::parse_lcs(
}
else if( action < 0 )
{
assert(0); // how can the index into the action table be negative?
throw_assert(0); // how can the index into the action table be negative?
}
else
{
assert(0); // how is this possible?
throw_assert(0); // how is this possible?
}
return false;
......@@ -1600,7 +1614,7 @@ bool lsda_t<ptrsize>::parse_lsda(
// we ignore for now. A warning is printed if they are found in build_ir.
}
else
assert(0);
throw_assert(0);
};
......@@ -1829,7 +1843,7 @@ bool split_eh_frame_impl_t<ptrsize>::iterate_fdes()
// next CIE/FDE
assert(position<=next_position); // so we don't accidentally over-read a CIE/FDE
throw_assert(position<=next_position); // so we don't accidentally over-read a CIE/FDE
position=next_position;
}
return false;
......
......@@ -23,7 +23,6 @@
#include <stdlib.h>
#include <string.h>
#include <map>
#include <assert.h>
#include <algorithm>
#include <memory>
#include <set>
......
#define use_throwing_assert
#ifndef throw_asssert
#ifdef use_throwing_assert
#define throw_assert(a) { if(!(a)) throw std::invalid_argument(#a); }
#else
#include <assert.h>
#define throw_assert(a) { assert(a); }
#endif
#endif