Creates a temporary which is freed while still in use Again :)

Variables are semantically meaningful in Rust. Expression assigned to a variable lives longer than the same expression used as part of another expression.

Because Rust doesn't have garbage collection, this:

let process = Command::new(location_test).arg(address);

is different from this:

let process = Command::new(location_test);
process.arg(address);

You need to use the second version to own the Command instead of only being able to have a temporary reference to it that arg returns.