DynamoRIO / DynamoRIO/dynamorio

client output goes to application output file

Open
#2,507 1 comment 0 reactions 0 assignees View on GitHub
Bug-AppFail OpSys-All OpSys-UNIX
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 18h
Merged PRs (30d)
30

Description

Try running this Python program:
```
import os
os.system('/bin/sh -c "echo hello" >temp.out')
```
with -c libopcodes.so. Overall this results in 3 outputs from dropcodes... but one of them goes in temp.out:
```
$ cat temp.out
hello
Top 15 opcode execution counts in 64-bit AMD64 mode:
3079 : jnbe
...
```
This is cut down from a much larger build script which was failing when run with the opcodes client - one build step was writing a file read by another step, and the file was being polluted by opcodes output. Reproduced on x86_64 and AArch64.

Contributor guide

Open the contributing guide

Research direction

Start by running the provided Python reproduction with `-c libopcodes.so` on a supported architecture and compare the application output with the opcodes client output. Trace where the client's output stream is selected; done means the `hello` file contains only the shell command's output while the opcode counts go to the intended client output.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, python
Domain
tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.