Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e021b040 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

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

parents af71ddfe b7d0f523
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -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
+0 −1
Original line number Diff line number Diff line
@@ -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"`
+1 −21
Original line number Diff line number Diff line
@@ -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)