Skip to content

One regression test from features.corkami started failing after merge of #281 #295

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
s3rvac opened this issue May 10, 2018 · 0 comments
Closed
Assignees

Comments

@s3rvac
Copy link
Member

s3rvac commented May 10, 2018

After the merge of #281, one regression test started failing.

Input

Run the following command from the regression-tests framework:

$ python3 runner.py features.corkami -r delayimports.ex

Output

Running 1 test case in retdec-regression-tests/features/corkami for commit 0259b1f7...

features.corkami.CorkamiTest (delayimports.ex)                                       [ FAIL ]  (4.55s)
F
======================================================================
FAIL: test (features.corkami.CorkamiTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "retdec-regression-tests/features/corkami/test.py", line 10, in test
	assert self.out_c.funcs['entry_point'].calls('printf', 'ExitProcess')
AssertionError

----------------------------------------------------------------------
Ran 1 test in 0.024s

FAILED (failures=1)

Expected output

Running 1 test case in retdec-regression-tests/features/corkami for commit 0259b1f7...

features.corkami.CorkamiTest (delayimports.ex)                                       [  OK  ]  (2.50s)

SUCCESS (1/1)

Notes

When I checked out a commit before the merge of #281 (0259b1f), the test passed. The original output contained the following code:

int32_t entry_point(void) {
    // entry
    printf(" * delay imports\n");
    ExitProcess(0);
    // UNREACHABLE
}

Now, after the merge of #281, the corresponding code is

int32_t (*g7)(int32_t) = (int32_t (*)(int32_t))0x401150;

int32_t entry_point(void) {
    // entry
    ((int32_t (*)(int32_t))&g7)((int32_t)" * delay imports\n");
    ExitProcess(0);
    // UNREACHABLE
}

It seems that we are no longer able to decompile the call to printf().

Configuration

  • Commit: 7138895 (current master)
  • 64b Arch Linux, GCC 7.3.1, Debug build of RetDec
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants