diff options
author | Bill Richardson <wfrichar@chromium.org> | 2013-02-25 13:44:46 -0800 |
---|---|---|
committer | Bill Richardson <wfrichar@chromium.org> | 2013-02-25 13:48:52 -0800 |
commit | 560b3b043e5d88679b365fcb047e929ef5bd4756 (patch) | |
tree | 5e97683230e128d8e0d64bac6894c7c693a4919d | |
parent | 14add67ca9f8b6d359ea39efee1e0ad8591f1208 (diff) | |
download | vboot-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.c | 20 |
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'; |