Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Dec 15, 2025

Bumps actions/download-artifact from 6.0.0 to 7.0.0.

Release notes

Sourced from actions/download-artifact's releases.

v7.0.0

v7 - What's new

[!IMPORTANT] actions/download-artifact@v7 now runs on Node.js 24 (runs.using: node24) and requires a minimum Actions Runner version of 2.327.1. If you are using self-hosted runners, ensure they are updated before upgrading.

Node.js 24

This release updates the runtime to Node.js 24. v6 had preliminary support for Node 24, however this action was by default still running on Node.js 20. Now this action by default will run on Node.js 24.

What's Changed

New Contributors

Full Changelog: actions/download-artifact@v6.0.0...v7.0.0

Commits
  • 37930b1 Merge pull request #452 from actions/download-artifact-v7-release
  • 72582b9 doc: update readme
  • 0d2ec9d chore: release v7.0.0 for Node.js 24 support
  • fd7ae8f Merge pull request #451 from actions/fix-storage-blob
  • d484700 chore: restore minimatch.dep.yml license file
  • 03a8080 chore: remove obsolete dependency license files
  • 56fe6d9 chore: update @​actions/artifact license file to 5.0.1
  • 8e3ebc4 chore: update package-lock.json with @​actions/artifact@​5.0.1
  • 1e3c4b4 fix: update @​actions/artifact to ^5.0.0 for Node.js 24 punycode fix
  • 458627d chore: use local @​actions/artifact package for Node.js 24 testing
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 6.0.0 to 7.0.0.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](actions/download-artifact@018cc2c...37930b1)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Dec 15, 2025
@twizmwazin twizmwazin merged commit 943bbc0 into master Dec 15, 2025
20 of 21 checks passed
@twizmwazin twizmwazin deleted the dependabot/github_actions/actions/download-artifact-7.0.0 branch December 15, 2025 16:27
@codecov
Copy link

codecov bot commented Dec 15, 2025

❌ 2 Tests Failed:

Tests completed Failed Passed Skipped
1185 2 1183 70
View the top 1 failed test(s) by shortest run time
tests/gui/test_decompilation_workflows.py::TestDecompilationWorkflows::test_decompiling_a_function_multiple_times
Stack Traces | 1.44s run time
self = <test_decompilation_workflows.TestDecompilationWorkflows testMethod=test_decompiling_a_function_multiple_times>

    def test_decompiling_a_function_multiple_times(self):
        bin_path = os.path.join(test_location, "x86_64", "decompiler", "struct_access")
        proj = angr.Project(bin_path, auto_load_libs=False)
    
        proj.analyses.CFGFast(normalize=True)
        func = proj.kb.functions["main"]
        dec = proj.analyses.Decompiler(func, cfg=proj.kb.cfgs["CFGFast"])
        assert dec.codegen is not None and dec.codegen.text is not None
        print_decompilation_result(dec)
    
        # decompile again, using decompilation cache
        dec_2 = proj.analyses.Decompiler(func, cfg=proj.kb.cfgs["CFGFast"])
        assert dec_2.codegen is not None and dec_2.codegen.text is not None
        print_decompilation_result(dec_2)
    
>       assert dec.codegen.text == dec_2.codegen.text, "Decompilation results should be identical on multiple runs."
E       AssertionError: Decompilation results should be identical on multiple runs.
E       assert 'typedef struct struct_0 {\n    char padding_0[288];\n    struct struct_1 *field_120;\n} struct_0;\n\ntypedef struct struct_1 {\n    char field_0;\n} struct_1;\n\nint main(unsigned int a0, unsigned long long a1)\n{\n    unsigned long long v0;  // [bp-0x158]\n    struct_0 *v1;  // [bp-0x148]\n    unsigned long v2;  // [bp-0x140]\n    char v3;  // [bp-0x138]\n    char v4;  // [bp-0x134]\n    char v5;  // [bp-0x124]\n\n    v0 = a1;\n    v1 = malloc(296);\n    v1->field_120 = &v3;\n    v2 = &v1->padding_0[24 * a0 + 4];\n    *((unsigned int *)&(&v4)[240 + 4 * a0]) = a0;\n    *((unsigned int *)&v1->padding_0[244 + 4 * a0]) = a0;\n    *((unsigned int *)&(&v5)[24 * a0]) = a0;\n    *((unsigned int *)&v1->padding_0[20 + 24 * a0]) = a0;\n    v2 += 24;\n    return *((int *)&v1->field_120[20 + 24 * a0]);\n}\n' == 'typedef struct struct_0 {\n    char padding_0[288];\n    struct struct_1 *field_120;\n} struct_0;\n\ntypedef struct struct_1 {\n    char field_0;\n} struct_1;\n\nint main(unsigned int a0, unsigned long long a1)\n{\n    unsigned int s_14c;  // [bp-0x14c]\n    unsigned long long s_158;  // [bp-0x158]\n    struct_0 *v1;  // [bp-0x148]\n    unsigned long v2;  // [bp-0x140]\n    char v3;  // [bp-0x138]\n    char v4;  // [bp-0x134]\n    char v5;  // [bp-0x124]\n\n    s_14c = a0;\n    s_158 = a1;\n    v1 = malloc(296);\n    v1->field_120 = &v3;\n    v2 = &v1->padding_0[24 * a0 + 4];\n    *((unsigned int *)&(&v4)[240 + 4 * a0]) = a0;\n    *((unsigned int *)&v1->padding_0[244 + 4 * a0]) = a0;\n    *((unsigned int *)&(&v5)[24 * a0]) = a0;\n    *((unsigned int *)&v1->padding_0[20 + 24 * a0]) = a0;\n    v2 += 24;\n    return *((int *)&v1->field_120[20 + 24 * a0]);\n}\n'
E         
E           typedef struct struct_0 {
E               char padding_0[288];
E               struct struct_1 *field_120;
E           } struct_0;
E           
E           typedef struct struct_1 {
E               char field_0;
E           } struct_1;
E           
E           int main(unsigned int a0, unsigned long long a1)
E           {
E         -     unsigned int s_14c;  // [bp-0x14c]
E         -     unsigned long long s_158;  // [bp-0x158]
E         ?                        ^^^^^
E         +     unsigned long long v0;  // [bp-0x158]
E         ?                        ^^
E               struct_0 *v1;  // [bp-0x148]
E               unsigned long v2;  // [bp-0x140]
E               char v3;  // [bp-0x138]
E               char v4;  // [bp-0x134]
E               char v5;  // [bp-0x124]
E           
E         -     s_14c = a0;
E         -     s_158 = a1;
E         ?     ^^^^^
E         +     v0 = a1;
E         ?     ^^
E               v1 = malloc(296);
E               v1->field_120 = &v3;
E               v2 = &v1->padding_0[24 * a0 + 4];
E               *((unsigned int *)&(&v4)[240 + 4 * a0]) = a0;
E               *((unsigned int *)&v1->padding_0[244 + 4 * a0]) = a0;
E               *((unsigned int *)&(&v5)[24 * a0]) = a0;
E               *((unsigned int *)&v1->padding_0[20 + 24 * a0]) = a0;
E               v2 += 24;
E               return *((int *)&v1->field_120[20 + 24 * a0]);
E           }

tests/gui/test_decompilation_workflows.py:37: AssertionError
View the full list of 1 ❄️ flaky test(s)
tests/analyses/decompiler/test_decompiler.py::TestDecompiler::test_decompiling_abnormal_switch_case_case3

Flake rate in main: 47.58% (Passed 65 times, Failed 59 times)

Stack Traces | 13.6s run time
self = <tests.analyses.decompiler.test_decompiler.TestDecompiler testMethod=test_decompiling_abnormal_switch_case_case3>
decompiler_options = None

    def test_decompiling_abnormal_switch_case_case3(self, decompiler_options=None):
        bin_path = os.path.join(test_location, "x86_64", "windows", "msvcr120.dll")
        proj = angr.Project(bin_path, auto_load_libs=False)
    
        cfg = proj.analyses.CFGFast(
            force_smart_scan=False, normalize=True, regions=[(0x18003C330, 0x18003C330 + 0x1000)]
        )
        f = proj.kb.functions[0x18003C330]
        d = proj.analyses[Decompiler].prep(fail_fast=True)(f, cfg=cfg.model, options=decompiler_options)
        print_decompilation_result(d)
        assert d.codegen.text.count("switch") == 1
        # assert d.codegen.text.count("goto LABEL_18003c3fc;") == 2
        # assert d.codegen.text.count("LABEL_18003c3fc:") == 1
        # 16 cases without a default case
        for i in range(16):
            assert f"case {i}:" in d.codegen.text
        assert "default:" not in d.codegen.text
    
        # a0 should be an integer and a1 should be a char pointer
        assert len(d.codegen.cfunc.arg_list) == 3
        arg0, arg1, arg2 = d.codegen.cfunc.arg_list
        arg0_type = arg0.type
        arg1_type = arg1.type
        arg2_type = arg2.type
>       assert isinstance(arg0_type, SimTypePointer), f"Unexpected arg0 type: {arg0_type}"
E       AssertionError: Unexpected arg0 type: unsigned long (64 bits)
E       assert False
E        +  where False = isinstance(unsigned long (64 bits), SimTypePointer)

.../analyses/decompiler/test_decompiler.py:4201: AssertionError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@angr-bot
Copy link
Member

Corpus decompilation diffs can be found at angr/dec-snapshots@master...angr/angr_5938

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants