summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Richardson <wfrichar@chromium.org>2013-02-25 13:44:46 -0800
committerBill Richardson <wfrichar@chromium.org>2013-02-25 13:48:52 -0800
commit560b3b043e5d88679b365fcb047e929ef5bd4756 (patch)
tree5e97683230e128d8e0d64bac6894c7c693a4919d
parent14add67ca9f8b6d359ea39efee1e0ad8591f1208 (diff)
downloadvboot-560b3b043e5d88679b365fcb047e929ef5bd4756.tar.gz
Add calling process to futility.log, and fix unterminated string.
BUG=none BRANCH=none TEST=none Change-Id: I136e13cbe070136d1aa9588a757fbf0f3f403839 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/43943
-rw-r--r--futility/futility.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/futility/futility.c b/futility/futility.c
index be8d3b08..404b6b06 100644
--- a/futility/futility.c
+++ b/futility/futility.c
@@ -143,11 +143,28 @@ static void log_open(void)
lock.l_whence = SEEK_END;
ret = fcntl(log_fd, F_SETLKW, &lock); /* this blocks */
- if (ret < 0)
+ if (ret < 0) {
log_close();
+ return;
+ }
/* delimiter */
log_str("##### HEY #####");
+
+ {
+ /* Can we tell who called us? */
+ char truename[PATH_MAX+10];
+ char buf[80];
+ ssize_t r;
+ pid_t parent = getppid();
+ snprintf(buf, 80, "/proc/%d/exe", parent);
+ strncat(truename, "CALLER:", 7);
+ r = readlink(buf, truename+7, PATH_MAX-1);
+ if (r >= 0) {
+ truename[r+7] = '\0';
+ log_str(truename);
+ }
+ }
}
/******************************************************************************/
@@ -212,6 +229,7 @@ int main(int argc, char *argv[], char *envp[])
buf, strerror(errno));
exit(1);
}
+ truename[r] = '\0';
s = strrchr(truename, '/'); /* Find the true directory */
if (s) {
*s = '\0';