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

Enable undefined sanitizer by default #234

Closed
mikea opened this issue Dec 30, 2016 · 4 comments
Closed

Enable undefined sanitizer by default #234

mikea opened this issue Dec 30, 2016 · 4 comments

Comments

@mikea
Copy link
Contributor

mikea commented Dec 30, 2016

@kcc @inferno-chromium do you think we want this or should we continue enabling undefined sanitizer project-by-project?

@mikea mikea mentioned this issue Dec 30, 2016
@kcc
Copy link
Contributor

kcc commented Dec 30, 2016

Hard to say. Some projects may run away screaming if we start spamming them with int overflows.
E.g. FreeType has lots of those.

Is it possible to enable ubsan by default for every project, but somehow limit the number of ubsan-ish reports filed at one time per project (per target)?

@inferno-chromium
Copy link
Collaborator

We can enforce a limit, but it has to be manually enforced in job type (using MAX_STORED_CRASHES env variable, we were thinking to remove it, but maybe we will keep that env variable around, @tanin47 fyi).

Given our 50 project list, it is hard to enable one by one. Our testcase deduplication algorithm will be put to good test, but we do combine similar looking stacks together. If things go out of control, we can always delete a job type. Basically lets just make sure we have a strategy to disable this per project.

@alex
Copy link
Contributor

alex commented Dec 31, 2016

👍 on enabling it by default, it will find bugs, and individual projects can turn it off if they don't like it. More secure results should be the default :-)

@randombit
Copy link
Contributor

Could there be some way of enabling some/most UBsan options on a project specific basis, or a fuzzer specific basis? I ask because Botan's BER decoder triggers enum conversion UBSan errors (randombit/botan#751), but I'd take every other UBSan including signed overflow. And for that matter I'd be interested in any enum conversions happening outside of ber_dec.cpp

I am already planning on rewriting this ASN.1 sub-lib completely in the next year or so, so this is a short term problem, but I would hate to be spammed with many duplicate bugs in the mean time.

Or maybe the deduplicator will handle everything fine, it seems pretty good. I suppose the answer is turn it on and find out. :)

@mikea mikea closed this as completed in 171a542 Feb 2, 2017
mikea added a commit that referenced this issue Feb 2, 2017
freetype allegedly has lots of integer overflows 
#234
mikea added a commit that referenced this issue Feb 2, 2017
Doesn't build because of:

clang-5.0: error: invalid argument '-fsanitize=vptr' not allowed with '-fno-rtti'

#234
mikea added a commit that referenced this issue Feb 2, 2017
Reason: compilation error.
clang-5.0: error: invalid argument '-fsanitize=vptr' not allowed with '-fno-rtti'

#234
mikea added a commit that referenced this issue Feb 2, 2017
Reason: fails to build.

�[1m/src/icu/source/common/unicode/stringtriebuilder.h:310:46:�[1m�[31m runtime error: �[1m�[0m�[1msigned integer overflow: 124151392 * 37 cannot be represented in type 'int'�[1m�[0m
Makefile:566: recipe for target 'out/build/icudt59l/brkitr/burmesedict.dict' failed

#234
DavidKorczynski pushed a commit that referenced this issue Jul 9, 2024
This PR supports `gemini-experimental`, which appears to work well in
some cases.
Comparison experiment plan:
1. Compare `gemini-experimental` against our default `code-bison-32k`
with the same temperature `0.4`.
2. Run `gemini-experimental` with its default temperature `1`.
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

5 participants