Skip to content
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

Add support to LAVA-M dataset #107

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open

Conversation

Yhcrown
Copy link

@Yhcrown Yhcrown commented Sep 25, 2022

fix #102.
I add more intercepted functions so that the lava-m programs can properly get input tainted.
If the code is not quite standardized, I hope to get your test and modification.
Thanks & Best regards.

I add more intercepted functions so that the lava-m programs can properly get input tainted.
Copy link
Member

@aurelf aurelf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR, I added a few comments.
Also it would be great to add a test case, like extending test/file_input.c those are run by the CI and allow to detect regressions.
Thanks !

runtime/LibcWrappers.cpp Outdated Show resolved Hide resolved
runtime/LibcWrappers.cpp Outdated Show resolved Hide resolved
runtime/LibcWrappers.cpp Outdated Show resolved Hide resolved
@aurelf aurelf added the enhancement New feature or request label Sep 25, 2022
@Yhcrown
Copy link
Author

Yhcrown commented Sep 26, 2022

Some functions are difficult for me to write test cases for (like getutent). I’m still learing it. 😢

@aurelf
Copy link
Member

aurelf commented Sep 26, 2022

Thanks for the changes! Would be great if the test is possible to add for that function too... Do you think you can add it ?

@Yhcrown
Copy link
Author

Yhcrown commented Sep 26, 2022

Thanks for the changes! Would be great if the test is possible to add for that function too... Do you think you can add it ?

It may be a bit difficult for me now 😭 , I haven't figured out how symcc testing works yet. It would be great to have your help!.

@sebastianpoeplau
Copy link
Collaborator

I haven't figured out how symcc testing works yet.

We have some documentation here: https://github.com/eurecom-s3/symcc/blob/master/docs/Testing.txt. Let us know if you have questions!

@zhou1615
Copy link

zhou1615 commented Dec 5, 2022

Sorry for trouble but this PR does not seem to work in the current version of SymCC.
It seems that g_config.fullyConcrete has been removed from Config.cpp.
I am not quite familiar with SymCC, thus I am not sure how to make it work.

Maybe a possible change is use maybeSetInputFile like this commit d5891b0

@sebastianpoeplau
Copy link
Collaborator

Sorry for trouble but this PR does not seem to work in the current version of SymCC. It seems that g_config.fullyConcrete has been removed from Config.cpp. I am not quite familiar with SymCC, thus I am not sure how to make it work.

I can take it over, but I've got a question about the symbolic version of getutent. If I understand correctly, it treats the data returned from this libc function as symbolic input. Is this intended? In other words, do you expect SymCC to generate alternate contents of /var/run/utmp? Users can't write this file anyway, so wouldn't it make more sense to treat any data read from there as concrete?

I don't have a LAVA-M setup to check ☹️

@sebastianpoeplau sebastianpoeplau self-assigned this Dec 9, 2022
@aurelf
Copy link
Member

aurelf commented Nov 25, 2023

I'm trying to look at this PR, @Yhcrown in case you can give me push access to your branch that would save me quite some time :) It's quite manual now... I seem to be only able modify your pr from the online editor.

@AndrewQuijano
Copy link
Contributor

AndrewQuijano commented Aug 13, 2024

Just curious, is this still being worked on? LAVA is currently in the process of being upgraded, and perhaps I can help with this. For now, LAVA is being upgraded to work with LLVM-11 and at least there is potentially a plan to have LAVA leverage symcc to be able to plant bugs in more places in code.

@Yhcrown

@Yhcrown
Copy link
Author

Yhcrown commented Aug 17, 2024

Just curious, is this still being worked on? LAVA is currently in the process of being upgraded, and perhaps I can help with this. For now, LAVA is being upgraded to work with LLVM-11 and at least there is potentially a plan to have LAVA leverage symcc to be able to plant bugs in more places in code.

@Yhcrown

Sorry for the late reply. This sounds interesting, but I am not currently pursuing work in this direction. You can discuss advancing this direction with the members here.

@Yhcrown
Copy link
Author

Yhcrown commented Aug 17, 2024

I'm trying to look at this PR, @Yhcrown in case you can give me push access to your branch that would save me quite some time :) It's quite manual now... I seem to be only able modify your pr from the online editor.

I'm very sorry for such a late reply, I missed this notification before. I have added you as a collaborator, although it is quite late. I hope this may still be of help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Test LAVA-M with SymCC
5 participants