- const char **argv = argVector(trampoline, pathToTool, mboxFdText, arguments);
+ // make a data exchange pipe
+ int dataPipe[2];
+ if (pipe(dataPipe)) {
+ secinfo("authexec", "data pipe failure");
+ return errAuthorizationToolExecuteFailure;
+ }
+
+ // make text representation of the pipe handle
+ char pipeFdText[20];
+ snprintf(pipeFdText, sizeof(pipeFdText), "auth %d", dataPipe[READ]);
+ const char **argv = argVector(trampoline, pathToTool, pipeFdText, arguments);