Skip to content

Commit f1d9b23

Browse files
rgbriggspcmoore
authored andcommittedJul 21, 2020
audit: purge audit_log_string from the intra-kernel audit API
audit_log_string() was inteded to be an internal audit function and since there are only two internal uses, remove them. Purge all external uses of it by restructuring code to use an existing audit_log_format() or using audit_log_format(). Please see the upstream issue linux-audit/audit-kernel#84 Signed-off-by: Richard Guy Briggs <[email protected]> Signed-off-by: Paul Moore <[email protected]>
1 parent d7481b2 commit f1d9b23

File tree

7 files changed

+46
-62
lines changed

7 files changed

+46
-62
lines changed
 

‎include/linux/audit.h

-5
Original file line numberDiff line numberDiff line change
@@ -694,9 +694,4 @@ static inline bool audit_loginuid_set(struct task_struct *tsk)
694694
return uid_valid(audit_get_loginuid(tsk));
695695
}
696696

697-
static inline void audit_log_string(struct audit_buffer *ab, const char *buf)
698-
{
699-
audit_log_n_string(ab, buf, strlen(buf));
700-
}
701-
702697
#endif

‎kernel/audit.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -2080,13 +2080,13 @@ void audit_log_d_path(struct audit_buffer *ab, const char *prefix,
20802080
/* We will allow 11 spaces for ' (deleted)' to be appended */
20812081
pathname = kmalloc(PATH_MAX+11, ab->gfp_mask);
20822082
if (!pathname) {
2083-
audit_log_string(ab, "<no_memory>");
2083+
audit_log_format(ab, "\"<no_memory>\"");
20842084
return;
20852085
}
20862086
p = d_path(path, pathname, PATH_MAX+11);
20872087
if (IS_ERR(p)) { /* Should never happen since we send PATH_MAX */
20882088
/* FIXME: can we save some information here? */
2089-
audit_log_string(ab, "<too_long>");
2089+
audit_log_format(ab, "\"<too_long>\"");
20902090
} else
20912091
audit_log_untrustedstring(ab, p);
20922092
kfree(pathname);

‎security/apparmor/audit.c

+4-6
Original file line numberDiff line numberDiff line change
@@ -57,18 +57,16 @@ static void audit_pre(struct audit_buffer *ab, void *ca)
5757
struct common_audit_data *sa = ca;
5858

5959
if (aa_g_audit_header) {
60-
audit_log_format(ab, "apparmor=");
61-
audit_log_string(ab, aa_audit_type[aad(sa)->type]);
60+
audit_log_format(ab, "apparmor=\"%s\"",
61+
aa_audit_type[aad(sa)->type]);
6262
}
6363

6464
if (aad(sa)->op) {
65-
audit_log_format(ab, " operation=");
66-
audit_log_string(ab, aad(sa)->op);
65+
audit_log_format(ab, " operation=\"%s\"", aad(sa)->op);
6766
}
6867

6968
if (aad(sa)->info) {
70-
audit_log_format(ab, " info=");
71-
audit_log_string(ab, aad(sa)->info);
69+
audit_log_format(ab, " info=\"%s\"", aad(sa)->info);
7270
if (aad(sa)->error)
7371
audit_log_format(ab, " error=%d", aad(sa)->error);
7472
}

‎security/apparmor/file.c

+7-18
Original file line numberDiff line numberDiff line change
@@ -34,20 +34,6 @@ static u32 map_mask_to_chr_mask(u32 mask)
3434
return m;
3535
}
3636

37-
/**
38-
* audit_file_mask - convert mask to permission string
39-
* @buffer: buffer to write string to (NOT NULL)
40-
* @mask: permission mask to convert
41-
*/
42-
static void audit_file_mask(struct audit_buffer *ab, u32 mask)
43-
{
44-
char str[10];
45-
46-
aa_perm_mask_to_str(str, sizeof(str), aa_file_perm_chrs,
47-
map_mask_to_chr_mask(mask));
48-
audit_log_string(ab, str);
49-
}
50-
5137
/**
5238
* file_audit_cb - call back for file specific audit fields
5339
* @ab: audit_buffer (NOT NULL)
@@ -57,14 +43,17 @@ static void file_audit_cb(struct audit_buffer *ab, void *va)
5743
{
5844
struct common_audit_data *sa = va;
5945
kuid_t fsuid = current_fsuid();
46+
char str[10];
6047

6148
if (aad(sa)->request & AA_AUDIT_FILE_MASK) {
62-
audit_log_format(ab, " requested_mask=");
63-
audit_file_mask(ab, aad(sa)->request);
49+
aa_perm_mask_to_str(str, sizeof(str), aa_file_perm_chrs,
50+
map_mask_to_chr_mask(aad(sa)->request));
51+
audit_log_format(ab, " requested_mask=\"%s\"", str);
6452
}
6553
if (aad(sa)->denied & AA_AUDIT_FILE_MASK) {
66-
audit_log_format(ab, " denied_mask=");
67-
audit_file_mask(ab, aad(sa)->denied);
54+
aa_perm_mask_to_str(str, sizeof(str), aa_file_perm_chrs,
55+
map_mask_to_chr_mask(aad(sa)->denied));
56+
audit_log_format(ab, " denied_mask=\"%s\"", str);
6857
}
6958
if (aad(sa)->request & AA_AUDIT_FILE_MASK) {
7059
audit_log_format(ab, " fsuid=%d",

‎security/apparmor/ipc.c

+23-23
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,23 @@
2020

2121
/**
2222
* audit_ptrace_mask - convert mask to permission string
23-
* @buffer: buffer to write string to (NOT NULL)
2423
* @mask: permission mask to convert
24+
*
25+
* Returns: pointer to static string
2526
*/
26-
static void audit_ptrace_mask(struct audit_buffer *ab, u32 mask)
27+
static const char *audit_ptrace_mask(u32 mask)
2728
{
2829
switch (mask) {
2930
case MAY_READ:
30-
audit_log_string(ab, "read");
31-
break;
31+
return "read";
3232
case MAY_WRITE:
33-
audit_log_string(ab, "trace");
34-
break;
33+
return "trace";
3534
case AA_MAY_BE_READ:
36-
audit_log_string(ab, "readby");
37-
break;
35+
return "readby";
3836
case AA_MAY_BE_TRACED:
39-
audit_log_string(ab, "tracedby");
40-
break;
37+
return "tracedby";
4138
}
39+
return "";
4240
}
4341

4442
/* call back to audit ptrace fields */
@@ -47,12 +45,12 @@ static void audit_ptrace_cb(struct audit_buffer *ab, void *va)
4745
struct common_audit_data *sa = va;
4846

4947
if (aad(sa)->request & AA_PTRACE_PERM_MASK) {
50-
audit_log_format(ab, " requested_mask=");
51-
audit_ptrace_mask(ab, aad(sa)->request);
48+
audit_log_format(ab, " requested_mask=\"%s\"",
49+
audit_ptrace_mask(aad(sa)->request));
5250

5351
if (aad(sa)->denied & AA_PTRACE_PERM_MASK) {
54-
audit_log_format(ab, " denied_mask=");
55-
audit_ptrace_mask(ab, aad(sa)->denied);
52+
audit_log_format(ab, " denied_mask=\"%s\"",
53+
audit_ptrace_mask(aad(sa)->denied));
5654
}
5755
}
5856
audit_log_format(ab, " peer=");
@@ -142,16 +140,18 @@ static inline int map_signal_num(int sig)
142140
}
143141

144142
/**
145-
* audit_file_mask - convert mask to permission string
146-
* @buffer: buffer to write string to (NOT NULL)
143+
* audit_signal_mask - convert mask to permission string
147144
* @mask: permission mask to convert
145+
*
146+
* Returns: pointer to static string
148147
*/
149-
static void audit_signal_mask(struct audit_buffer *ab, u32 mask)
148+
static const char *audit_signal_mask(u32 mask)
150149
{
151150
if (mask & MAY_READ)
152-
audit_log_string(ab, "receive");
151+
return "receive";
153152
if (mask & MAY_WRITE)
154-
audit_log_string(ab, "send");
153+
return "send";
154+
return "";
155155
}
156156

157157
/**
@@ -164,11 +164,11 @@ static void audit_signal_cb(struct audit_buffer *ab, void *va)
164164
struct common_audit_data *sa = va;
165165

166166
if (aad(sa)->request & AA_SIGNAL_PERM_MASK) {
167-
audit_log_format(ab, " requested_mask=");
168-
audit_signal_mask(ab, aad(sa)->request);
167+
audit_log_format(ab, " requested_mask=\"%s\"",
168+
audit_signal_mask(aad(sa)->request));
169169
if (aad(sa)->denied & AA_SIGNAL_PERM_MASK) {
170-
audit_log_format(ab, " denied_mask=");
171-
audit_signal_mask(ab, aad(sa)->denied);
170+
audit_log_format(ab, " denied_mask=\"%s\"",
171+
audit_signal_mask(aad(sa)->denied));
172172
}
173173
}
174174
if (aad(sa)->signal == SIGUNKNOWN)

‎security/apparmor/net.c

+8-6
Original file line numberDiff line numberDiff line change
@@ -72,16 +72,18 @@ void audit_net_cb(struct audit_buffer *ab, void *va)
7272
{
7373
struct common_audit_data *sa = va;
7474

75-
audit_log_format(ab, " family=");
7675
if (address_family_names[sa->u.net->family])
77-
audit_log_string(ab, address_family_names[sa->u.net->family]);
76+
audit_log_format(ab, " family=\"%s\"",
77+
address_family_names[sa->u.net->family]);
7878
else
79-
audit_log_format(ab, "\"unknown(%d)\"", sa->u.net->family);
80-
audit_log_format(ab, " sock_type=");
79+
audit_log_format(ab, " family=\"unknown(%d)\"",
80+
sa->u.net->family);
8181
if (sock_type_names[aad(sa)->net.type])
82-
audit_log_string(ab, sock_type_names[aad(sa)->net.type]);
82+
audit_log_format(ab, " sock_type=\"%s\"",
83+
sock_type_names[aad(sa)->net.type]);
8384
else
84-
audit_log_format(ab, "\"unknown(%d)\"", aad(sa)->net.type);
85+
audit_log_format(ab, " sock_type=\"unknown(%d)\"",
86+
aad(sa)->net.type);
8587
audit_log_format(ab, " protocol=%d", aad(sa)->net.protocol);
8688

8789
if (aad(sa)->request & NET_PERMS_MASK) {

‎security/lsm_audit.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -432,8 +432,8 @@ static void dump_common_audit_data(struct audit_buffer *ab,
432432
a->u.ibendport->port);
433433
break;
434434
case LSM_AUDIT_DATA_LOCKDOWN:
435-
audit_log_format(ab, " lockdown_reason=");
436-
audit_log_string(ab, lockdown_reasons[a->u.reason]);
435+
audit_log_format(ab, " lockdown_reason=\"%s\"",
436+
lockdown_reasons[a->u.reason]);
437437
break;
438438
} /* switch (a->type) */
439439
}

0 commit comments

Comments
 (0)
Please sign in to comment.