author Ted Campbell <>
Tue, 28 Nov 2017 23:01:49 -0500
changeset 442685 84ca5dce1d6a63bc64612876eccee30fc45080f9
parent 436622 a044434134f05e9846dc02558460e7cc28060765
child 443469 6406e73a24bca7b3355ff438c283fe0bd20afdaf
permissions -rw-r--r--
Bug 1418894 - Harden XDR data decoding. r=nbp a=gchang This patch adds better error detection to XDR decoding to reduce memory corruption in the event that XDR data is corrupt (which is not *supposed* to happen). Add missing default cases. Make out-of-range values fail the decode by asserting in debug, and returning a TranscodeError in release. Mix a magic value into enum value before transcoding to buffer (to reduce chance of garbage data being decoded). MozReview-Commit-ID: 1wPkho9dm8c

# Copy this file to .servobuild in the Servo root directory
# Be sure to set the cache-dir correctly, otherwise extra
# copies of the Rust compiler may get downloaded

# Paths starting with "./" are relative to the repo root

# Tool options
# Where Rust compiler and other downloads will be stored.  Can be
# shared by multiple Servo repositories.  Defaults to <servo-repo>/.servo
cache-dir = "./.servo"

# Where Cargo stores all of its clones  Defaults to <servo-repo>/.cargo
cargo-home-dir = "./.cargo"

# If system-rust is true, will use rustc/rustdoc from the path, or if
# rust-root is specified, will make sure that rust-root is in the path
# when building. Similarly for Cargo. This takes care of PATH as well as
# rust-root and cargo-root default to <servo-repo>/
system-rust = false
#rust-root = "/path/to/rust"
system-cargo = false
#cargo-root = "/path/to/cargo"

# If rustc-with-gold is true, will try to find and use gold linker with rustc.
# Defaults to true
rustc-with-gold = true

# If uncommented, this command is used instead of the platform’s default
# to notify at the end of a compilation that took a long time.
# This is the name or path of an executable called with two arguments:
# the summary and content of the notification.
#notify-command = "notify-send"

# Set "mode = dev" or use `mach build --dev` to build the project with warning.
# or Set "mode = release" or use `mach build --release` for optimized build.
# Defaults to prompting before building
#mode = "dev"

# Whether to enable LLVM assertions in rustc.
#llvm-assertions = false

# Set "android = true" or use `mach build --android` to build the Android app.
android = false

# Set "debug-mozjs" or use `mach build --debug-mozjs` to build a debug spidermonkey.
debug-mozjs = false

# Set to the path to your ccache binary to enable caching of compiler outputs
#ccache = "/usr/local/bin/ccache"

# Any optional flags that will be added to $RUSTFLAGS
#rustflags = ""

# Enable rustc’s incremental compilation
#incremental = false

# Whether to use ThinLTO or not
#thinlto = false

# Android information
# Defaults to the value of $ANDROID_SDK, $ANDROID_NDK, $ANDROID_TOOLCHAIN, $ANDROID_PLATFORM respectively
#sdk = "/opt/android-sdk"
#ndk = "/opt/android-ndk"
#toolchain = "/opt/android-toolchain"
#platform = "android-18"