Skip to content

Commit 93393a6

Browse files
Eris A.axtloss
authored andcommitted
Format main.c
1 parent 27a9c6a commit 93393a6

File tree

1 file changed

+98
-73
lines changed

1 file changed

+98
-73
lines changed

src/main.c

Lines changed: 98 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
// copyright axtlos <axtlos@disroot.org>
2-
// SPDX-LICENSE: LGPL-3.0-ONLY
1+
/* copyright axtlos <axtlos@disroot.org>
2+
* SPDX-LICENSE: LGPL-3.0-ONLY */
33

44
#include <errno.h>
55
#include <stdbool.h>
@@ -22,46 +22,51 @@ argcmp(int matchtype, long config_arg_long, char *config_arg_char, long sys_arg)
2222
bool return_val = false;
2323

2424
if (!config_arg_char && config_arg_long != -1)
25-
return_val = has_flag(config_arg_long, sys_arg);
25+
return_val = has_flag (config_arg_long, sys_arg);
2626
else if (config_arg_char)
27-
switch (matchtype) {
28-
case -1:
29-
if (strncmp(config_arg_char, (char*)sys_arg, strlen(config_arg_char)) == 0)
30-
return_val = true;
31-
break;
32-
case 0:
33-
if (strcmp((char *)sys_arg, config_arg_char) == 0)
34-
return_val = true;
35-
break;
36-
case 1:
37-
if (strstr((char *)sys_arg, config_arg_char) != NULL)
38-
return_val = true;
39-
break;
40-
default:
41-
return_val = false;
27+
switch (matchtype)
28+
{
29+
case -1:
30+
if (strncmp (config_arg_char, (char *)sys_arg, strlen (config_arg_char)) == 0)
31+
return_val = true;
32+
break;
33+
case 0:
34+
if (strcmp ((char *)sys_arg, config_arg_char) == 0)
35+
return_val = true;
36+
break;
37+
case 1:
38+
if (strstr ((char *)sys_arg, config_arg_char) != NULL)
39+
return_val = true;
40+
break;
41+
default:
42+
return_val = false;
4243
}
4344

4445
return return_val;
4546
}
4647

47-
// Function origin:
48-
// https://www.gnu.org/software/libc/manual/html_node/Symbolic-Links.html#index-readlink
48+
/* Function origin:
49+
*
50+
* https://www.gnu.org/software/libc/manual/html_node/Symbolic-Links.html#index-readlink */
4951
char *
5052
readlink_malloc(const char *filename)
5153
{
5254
size_t size = 50;
5355
char *buffer = NULL;
5456

55-
while (true) {
56-
buffer = reallocarray(buffer, size, 2);
57-
if (buffer == 0) {
58-
puts("Virtual memory exhausted");
59-
exit(1);
57+
while (true)
58+
{
59+
buffer = reallocarray (buffer, size, 2);
60+
if (buffer == 0)
61+
{
62+
puts ("Virtual memory exhausted");
63+
exit (1);
6064
}
6165
size *= 2;
62-
ssize_t nchars = readlink(filename, buffer, size);
63-
if (nchars < 0) {
64-
free(buffer);
66+
ssize_t nchars = readlink (filename, buffer, size);
67+
if (nchars < 0)
68+
{
69+
free (buffer);
6570
return NULL;
6671
}
6772
if ((unsigned)nchars < size)
@@ -73,106 +78,125 @@ char *
7378
get_fdesc(long arg)
7479
{
7580
char *linkname, *procstat;
76-
pid_t pid = getpid();
77-
int proc = asprintf(&procstat, "/proc/%d/fd/%ld", pid, arg);
81+
pid_t pid = getpid ();
82+
int proc = asprintf (&procstat, "/proc/%d/fd/%ld", pid, arg);
7883

7984
if (proc < 0)
8085
linkname = NULL;
8186
else
82-
linkname = readlink_malloc(procstat);
87+
linkname = readlink_malloc (procstat);
8388

8489
return linkname;
8590
}
8691

8792
bool
88-
match_args(conf_syscall *call, long arg0, long arg1, long arg2, long arg3, long arg4, long arg5)
93+
match_args(conf_syscall * call, long arg0, long arg1, long arg2, long arg3, long arg4, long arg5)
8994
{
90-
bool arg0_match = true, arg1_match = true, arg2_match = true, arg3_match = true, arg4_match = true, arg5_match = true;
91-
if (call->arg0 || call->arg0_long != -1) {
95+
bool arg0_match = true, arg1_match = true, arg2_match = true, arg3_match = true,
96+
arg4_match = true, arg5_match = true;
97+
98+
if (call->arg0 || call->arg0_long != -1)
99+
{
92100
long arg = arg0;
93-
if (call->arg0_fdesc == true) {
94-
arg = (long)get_fdesc(arg0);
101+
if (call->arg0_fdesc == true)
102+
{
103+
arg = (long)get_fdesc (arg0);
95104
if (arg <= 0)
96105
goto arg1cmp;
97106
}
98-
arg0_match = argcmp(call->arg0_matchtype, call->arg0_long, call->arg0, arg);
107+
arg0_match = argcmp (call->arg0_matchtype, call->arg0_long, call->arg0, arg);
99108
}
100109
arg1cmp:
101-
if (call->arg1 || call->arg1_long != -1) {
110+
if (call->arg1 || call->arg1_long != -1)
111+
{
102112
long arg = arg1;
103-
if (call->arg1_fdesc == true) {
104-
arg = (long)get_fdesc(arg1);
113+
if (call->arg1_fdesc == true)
114+
{
115+
arg = (long)get_fdesc (arg1);
105116
if (arg <= 0)
106117
goto arg2cmp;
107118
}
108-
arg1_match = argcmp(call->arg1_matchtype, call->arg1_long, call->arg1, arg);
119+
arg1_match = argcmp (call->arg1_matchtype, call->arg1_long, call->arg1, arg);
109120
}
110121
arg2cmp:
111-
if (call->arg2 || call->arg2_long != -1) {
122+
if (call->arg2 || call->arg2_long != -1)
123+
{
112124
long arg = arg2;
113-
if (call->arg2_fdesc == true) {
114-
arg = (long)get_fdesc(arg2);
125+
if (call->arg2_fdesc == true)
126+
{
127+
arg = (long)get_fdesc (arg2);
115128
if (arg <= 0)
116129
goto arg3cmp;
117130
}
118-
arg2_match = argcmp(call->arg2_matchtype, call->arg2_long, call->arg2, arg);
131+
arg2_match = argcmp (call->arg2_matchtype, call->arg2_long, call->arg2, arg);
119132
}
120133
arg3cmp:
121-
if (call->arg3 || call->arg3_long != -1) {
134+
if (call->arg3 || call->arg3_long != -1)
135+
{
122136
long arg = arg3;
123-
if (call->arg3_fdesc == true) {
124-
arg = (long)get_fdesc(arg3);
137+
if (call->arg3_fdesc == true)
138+
{
139+
arg = (long)get_fdesc (arg3);
125140
if (arg <= 0)
126141
goto arg4cmp;
127142
}
128-
arg3_match = argcmp(call->arg3_matchtype, call->arg3_long, call->arg3, arg);
143+
arg3_match = argcmp (call->arg3_matchtype, call->arg3_long, call->arg3, arg);
129144
}
130145
arg4cmp:
131-
if (call->arg4 || call->arg4_long != -1) {
146+
if (call->arg4 || call->arg4_long != -1)
147+
{
132148
long arg = arg4;
133-
if (call->arg4_fdesc == true) {
134-
arg = (long)get_fdesc(arg4);
149+
if (call->arg4_fdesc == true)
150+
{
151+
arg = (long)get_fdesc (arg4);
135152
if (arg <= 0)
136153
goto arg5cmp;
137154
}
138-
arg4_match = argcmp(call->arg4_matchtype, call->arg4_long, call->arg4, arg);
155+
arg4_match = argcmp (call->arg4_matchtype, call->arg4_long, call->arg4, arg);
139156
}
140157
arg5cmp:
141-
if (call->arg5 || call->arg5_long != -1) {
158+
if (call->arg5 || call->arg5_long != -1)
159+
{
142160
long arg = arg5;
143-
if (call->arg5_fdesc == true) {
144-
arg = (long)get_fdesc(arg5);
161+
if (call->arg5_fdesc == true)
162+
{
163+
arg = (long)get_fdesc (arg5);
145164
if (arg <= 0)
146165
goto cmpfinish;
147166
}
148-
arg5_match = argcmp(call->arg5_matchtype, call->arg5_long, call->arg5, arg);
167+
arg5_match = argcmp (call->arg5_matchtype, call->arg5_long, call->arg5, arg);
149168
}
150169
cmpfinish:
151170
return arg0_match && arg1_match && arg2_match && arg3_match && arg4_match && arg5_match;
152171
}
153172

154-
void log_call(conf_syscall *call)
173+
void
174+
log_call(conf_syscall * call)
155175
{
156176
FILE *log_file;
157-
time_t t = time(NULL);
158-
struct tm timestruc = *localtime(&t);
159-
160-
log_file = fopen(LOG_FILE, "a");
161-
fprintf(log_file, "Intercepted call %s at %d-%02d-%02d %02d:%02d:%02d\n",
162-
call->name, timestruc.tm_year + 1900, timestruc.tm_mon + 1,
163-
timestruc.tm_mday, timestruc.tm_hour, timestruc.tm_min,
164-
timestruc.tm_sec);
165-
fclose(log_file);
177+
time_t t = time (NULL);
178+
struct tm timestruc = *localtime (&t);
179+
180+
log_file = fopen (LOG_FILE, "a");
181+
fprintf (log_file, "Intercepted call %s at %d-%02d-%02d %02d:%02d:%02d\n",
182+
call->name, timestruc.tm_year + 1900, timestruc.tm_mon + 1,
183+
timestruc.tm_mday, timestruc.tm_hour, timestruc.tm_min,
184+
timestruc.tm_sec);
185+
fclose (log_file);
166186
}
187+
167188
static int
168189
hook(long syscall_number, long arg0, long arg1, long arg2, long arg3, long arg4, long arg5, long *result)
169190
{
170-
conf_syscall *call = get_calls();
171-
while(true) {
172-
if (call->callnum == syscall_number && match_args(call, arg0, arg1, arg2, arg3, arg4, arg5)) {
191+
conf_syscall *call = get_calls ();
192+
while (true)
193+
{
194+
if (call->callnum == syscall_number && match_args (call, arg0, arg1, arg2, arg3, arg4, arg5))
195+
{
173196
if (call->log)
174-
log_call(call);
175-
if (call->block) {
197+
log_call (call);
198+
if (call->block)
199+
{
176200
*result = -ENOTSUP;
177201
return 0;
178202
}
@@ -184,7 +208,8 @@ hook(long syscall_number, long arg0, long arg1, long arg2, long arg3, long arg4,
184208
}
185209
}
186210

187-
static __attribute__((constructor)) void
211+
static __attribute__ ((constructor))
212+
void
188213
init(void)
189214
{
190215
intercept_hook_point = &hook;

0 commit comments

Comments
 (0)