aboutsummaryrefslogtreecommitdiffstats
path: root/chromeos
diff options
context:
space:
mode:
authorBertrand SIMONNET <bsimonnet@chromium.org>2015-07-23 13:25:22 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-07-24 04:17:11 +0000
commit6755ff9b2f87bdb3fa84299ae974cbb67100eb52 (patch)
treee96b5288cbf60a67f9b72fb103968bcac3039f56 /chromeos
parent793c7cf2dd99b07ec99dc8f057960564db3e69e5 (diff)
downloadplatform_external_libbrillo-6755ff9b2f87bdb3fa84299ae974cbb67100eb52.tar.gz
platform_external_libbrillo-6755ff9b2f87bdb3fa84299ae974cbb67100eb52.tar.bz2
platform_external_libbrillo-6755ff9b2f87bdb3fa84299ae974cbb67100eb52.zip
libchromeos: process.cc fail cleanly when no arguments are specified.
If we attempt to spawn a process to run an executable, fail early instead of waiting for the call to fail. BUG=None TEST=unittests pass. TEST=trybot run on daisy, link, lumpy, mips. Change-Id: I1742101eb47787b948b20d4129a8b1893dba0568 Reviewed-on: https://chromium-review.googlesource.com/287864 Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org> Commit-Queue: Bertrand Simonnet <bsimonnet@chromium.org> Trybot-Ready: Bertrand Simonnet <bsimonnet@chromium.org> Tested-by: Bertrand Simonnet <bsimonnet@chromium.org>
Diffstat (limited to 'chromeos')
-rw-r--r--chromeos/process.cc4
-rw-r--r--chromeos/process_test.cc2
2 files changed, 5 insertions, 1 deletions
diff --git a/chromeos/process.cc b/chromeos/process.cc
index a4e77ba..650d3d3 100644
--- a/chromeos/process.cc
+++ b/chromeos/process.cc
@@ -146,6 +146,10 @@ bool ProcessImpl::PopulatePipeMap() {
}
bool ProcessImpl::Start() {
+ // If no arguments are provided, fail.
+ if (arguments_.empty()) {
+ return false;
+ }
scoped_ptr<char*[]> argv(new char*[arguments_.size() + 1]);
for (size_t i = 0; i < arguments_.size(); ++i)
diff --git a/chromeos/process_test.cc b/chromeos/process_test.cc
index 8ecb90f..f30d828 100644
--- a/chromeos/process_test.cc
+++ b/chromeos/process_test.cc
@@ -251,7 +251,7 @@ TEST_F(ProcessTest, WithIllegalGid) {
}
TEST_F(ProcessTest, NoParams) {
- EXPECT_EQ(static_cast<pid_t>(Process::kErrorExitStatus), process_.Run());
+ EXPECT_EQ(-1, process_.Run());
}
TEST_F(ProcessTest, SegFaultHandling) {