aboutsummaryrefslogtreecommitdiffstats
path: root/src/libtrace
diff options
context:
space:
mode:
authorLibravatar smitsohu <smitsohu@gmail.com>2019-09-22 13:18:23 +0200
committerLibravatar smitsohu <smitsohu@gmail.com>2019-09-22 13:18:23 +0200
commitf82d9344dcef51a7306bbe718369b0015922e4f3 (patch)
tree28a8a07990d244c6797673973085fe839d0de2c1 /src/libtrace
parentapparmor: permit writing to trace file (diff)
downloadfirejail-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.c20
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;
56static FILE *ftty = NULL; 56static FILE *ftty = NULL;
57static pid_t mypid = 0; 57static pid_t mypid = 0;
58#define MAXNAME 16 58#define MAXNAME 16
59static char myname[MAXNAME] = {'\0', }; 59static char myname[MAXNAME] = "unknown";
60 60
61static void init(void) __attribute__((constructor)); 61static void init(void) __attribute__((constructor));
62void init(void) { 62void 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
105static void fini(void) __attribute__((destructor)); 105static void fini(void) __attribute__((destructor));