From 22fcb563ce45e64f23c9911bdcd07b0086bc892a Mon Sep 17 00:00:00 2001
From: Nat Goodspeed <nat@lindenlab.com>
Date: Thu, 1 Mar 2012 14:27:32 -0500
Subject: [PATCH] Log better error message in case of apr_proc_create()
 failure. We were using uniform macro to report the APR function and its C++
 parameter expressions. But specifically for apr_proc_create() failure, better
 to report the command we're attempting to execute.

---
 indra/llcommon/llprocess.cpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/indra/llcommon/llprocess.cpp b/indra/llcommon/llprocess.cpp
index 8ccd39152b4..9c495175981 100644
--- a/indra/llcommon/llprocess.cpp
+++ b/indra/llcommon/llprocess.cpp
@@ -617,8 +617,14 @@ LLProcess::LLProcess(const LLSDOrParams& params):
 	// terminate with a null pointer
 	argv.push_back(NULL);
 
-	// Launch! The NULL would be the environment block, if we were passing one.
-	chkapr(apr_proc_create(&mProcess, argv[0], &argv[0], NULL, procattr, gAPRPoolp));    
+	// Launch! The NULL would be the environment block, if we were passing
+	// one. Hand-expand chkapr() macro so we can fill in the actual command
+	// string instead of the variable names.
+	if (ll_apr_warn_status(apr_proc_create(&mProcess, argv[0], &argv[0], NULL, procattr,
+										   gAPRPoolp)))
+	{
+		throw LLProcessError(STRINGIZE(params << " failed"));
+	}
 
 	// arrange to call status_callback()
 	apr_proc_other_child_register(&mProcess, &LLProcess::status_callback, this, mProcess.in,
-- 
GitLab