Merge "Revert "Support enabling overflow sanitization by path.""

am: e021b0405d

Change-Id: Iaeceb0c8afece1ac7f2664e92de40f624da156ab
This commit is contained in:
Ivan Lozano 2018-01-20 04:00:31 +00:00 committed by android-build-merger
commit a8388ac9e6
3 changed files with 1 additions and 29 deletions

View file

@ -712,13 +712,6 @@ func (c *config) CFIDisabledForPath(path string) bool {
return PrefixInList(path, *c.ProductVariables.CFIExcludePaths)
}
func (c *config) IntegerOverflowEnabledForPath(path string) bool {
if c.ProductVariables.IntegerOverflowIncludePaths == nil {
return false
}
return PrefixInList(path, *c.ProductVariables.IntegerOverflowIncludePaths)
}
func (c *config) CFIEnabledForPath(path string) bool {
if c.ProductVariables.CFIIncludePaths == nil {
return false

View file

@ -167,7 +167,6 @@ type productVariables struct {
MinimizeJavaDebugInfo *bool `json:",omitempty"`
IntegerOverflowExcludePaths *[]string `json:",omitempty"`
IntegerOverflowIncludePaths *[]string `json:",omitempty"`
EnableCFI *bool `json:",omitempty"`
CFIExcludePaths *[]string `json:",omitempty"`

View file

@ -232,14 +232,6 @@ func (sanitize *sanitize) begin(ctx BaseModuleContext) {
}
}
// Enable Integer Overflow for all components in the include paths
if !ctx.Host() && ctx.Config().IntegerOverflowEnabledForPath(ctx.ModuleDir()) && s.Integer_overflow == nil {
s.Integer_overflow = boolPtr(true)
if inList("integer_overflow", ctx.Config().SanitizeDeviceDiag()) {
s.Diag.Integer_overflow = boolPtr(true)
}
}
// CFI needs gold linker, and mips toolchain does not have one.
if !ctx.Config().EnableCFI() || ctx.Arch().ArchType == android.Mips || ctx.Arch().ArchType == android.Mips64 {
s.Cfi = nil
@ -425,7 +417,6 @@ func (sanitize *sanitize) flags(ctx ModuleContext, flags Flags) Flags {
sanitizers = append(sanitizers, "unsigned-integer-overflow")
sanitizers = append(sanitizers, "signed-integer-overflow")
flags.CFlags = append(flags.CFlags, intOverflowCflags...)
if Bool(sanitize.Properties.Sanitize.Diag.Integer_overflow) {
diagSanitizers = append(diagSanitizers, "unsigned-integer-overflow")
diagSanitizers = append(diagSanitizers, "signed-integer-overflow")
@ -433,8 +424,6 @@ func (sanitize *sanitize) flags(ctx ModuleContext, flags Flags) Flags {
}
}
diagSanitizeArgs := "-fno-sanitize-trap=" + strings.Join(diagSanitizers, ",")
if len(sanitizers) > 0 {
sanitizeArg := "-fsanitize=" + strings.Join(sanitizers, ",")
flags.CFlags = append(flags.CFlags, sanitizeArg)
@ -447,19 +436,10 @@ func (sanitize *sanitize) flags(ctx ModuleContext, flags Flags) Flags {
} else {
flags.CFlags = append(flags.CFlags, "-fsanitize-trap=all", "-ftrap-function=abort")
}
// Specific settings for userdebug and eng builds
if Bool(ctx.Config().ProductVariables.Debuggable) {
// TODO(ivanlozano): uncomment after switch to clang-4536805.
// Run integer overflow sanitizers with the minimal runtime diagnostics.
if strings.Contains(sanitizeArg, "integer") && !strings.Contains(diagSanitizeArgs, "integer") && !Bool(sanitize.Properties.Sanitize.Address) {
//flags.CFlags = append(flags.CFlags, "-fsanitize-minimal-runtime")
}
}
}
if len(diagSanitizers) > 0 {
flags.CFlags = append(flags.CFlags, diagSanitizeArgs)
flags.CFlags = append(flags.CFlags, "-fno-sanitize-trap="+strings.Join(diagSanitizers, ","))
}
// FIXME: enable RTTI if diag + (cfi or vptr)