diff options
author | smitsohu <smitsohu@gmail.com> | 2019-09-22 13:18:23 +0200 |
---|---|---|
committer | smitsohu <smitsohu@gmail.com> | 2019-09-22 13:18:23 +0200 |
commit | f82d9344dcef51a7306bbe718369b0015922e4f3 (patch) | |
tree | 28a8a07990d244c6797673973085fe839d0de2c1 /src/libtrace | |
parent | apparmor: permit writing to trace file (diff) | |
download | firejail-f82d9344dcef51a7306bbe718369b0015922e4f3.tar.gz firejail-f82d9344dcef51a7306bbe718369b0015922e4f3.tar.zst firejail-f82d9344dcef51a7306bbe718369b0015922e4f3.zip |
various clarifications, minor fixes
Diffstat (limited to 'src/libtrace')
-rw-r--r-- | src/libtrace/libtrace.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/libtrace/libtrace.c b/src/libtrace/libtrace.c index 0c21b9b70..db04ee1ae 100644 --- a/src/libtrace/libtrace.c +++ b/src/libtrace/libtrace.c | |||
@@ -56,7 +56,7 @@ static orig_access_t orig_access = NULL; | |||
56 | static FILE *ftty = NULL; | 56 | static FILE *ftty = NULL; |
57 | static pid_t mypid = 0; | 57 | static pid_t mypid = 0; |
58 | #define MAXNAME 16 | 58 | #define MAXNAME 16 |
59 | static char myname[MAXNAME] = {'\0', }; | 59 | static char myname[MAXNAME] = "unknown"; |
60 | 60 | ||
61 | static void init(void) __attribute__((constructor)); | 61 | static void init(void) __attribute__((constructor)); |
62 | void init(void) { | 62 | void init(void) { |
@@ -84,13 +84,15 @@ void init(void) { | |||
84 | 84 | ||
85 | // process name | 85 | // process name |
86 | char *fname; | 86 | char *fname; |
87 | if (asprintf(&fname, "/proc/%u/comm", mypid) == -1) | 87 | if (asprintf(&fname, "/proc/%u/comm", mypid) != -1) { |
88 | strncpy(myname, "unknown", MAXNAME-1); | 88 | FILE *fp = orig_fopen(fname, "r"); |
89 | 89 | free(fname); | |
90 | // read file | 90 | if (fp) { |
91 | FILE *fp = orig_fopen(fname, "r"); | 91 | if (fgets(myname, MAXNAME, fp) == NULL) |
92 | if (!fp || fgets(myname, MAXNAME, fp) == NULL) | 92 | strncpy(myname, "unknown", MAXNAME-1); |
93 | strncpy(myname, "unknown", MAXNAME-1); | 93 | fclose(fp); |
94 | } | ||
95 | } | ||
94 | 96 | ||
95 | // clean '\n' | 97 | // clean '\n' |
96 | char *ptr = strchr(myname, '\n'); | 98 | char *ptr = strchr(myname, '\n'); |
@@ -98,8 +100,6 @@ void init(void) { | |||
98 | *ptr = '\0'; | 100 | *ptr = '\0'; |
99 | 101 | ||
100 | tprintf(ftty, "=== tracelib init() [%d:%s] === \n", mypid, myname); | 102 | tprintf(ftty, "=== tracelib init() [%d:%s] === \n", mypid, myname); |
101 | fclose(fp); | ||
102 | free(fname); | ||
103 | } | 103 | } |
104 | 104 | ||
105 | static void fini(void) __attribute__((destructor)); | 105 | static void fini(void) __attribute__((destructor)); |