Skip to content

Commit 0970bf6

Browse files
tititiou36kuba-moo
authored andcommitted
llc: Constify struct llc_sap_state_trans
'struct llc_sap_state_trans' are not modified in this driver. Constifying this structure moves some data to a read-only section, so increase overall security. On a x86_64, with allmodconfig, as an example: Before: ====== text data bss dec hex filename 339 456 24 819 333 net/llc/llc_s_st.o After: ===== text data bss dec hex filename 683 144 0 827 33b net/llc/llc_s_st.o Signed-off-by: Christophe JAILLET <[email protected]> Reviewed-by: Simon Horman <[email protected]> Link: https://patch.msgid.link/9d17587639195ee94b74ff06a11ef97d1833ee52.1720973710.git.christophe.jaillet@wanadoo.fr Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 70de41e commit 0970bf6

File tree

3 files changed

+21
-21
lines changed

3 files changed

+21
-21
lines changed

include/net/llc_s_st.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ struct llc_sap_state_trans {
2929
};
3030

3131
struct llc_sap_state {
32-
u8 curr_state;
33-
struct llc_sap_state_trans **transitions;
32+
u8 curr_state;
33+
const struct llc_sap_state_trans **transitions;
3434
};
3535

3636
/* only access to SAP state table */

net/llc/llc_s_st.c

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
* last entry for this state
2525
* all members are zeros, .bss zeroes it
2626
*/
27-
static struct llc_sap_state_trans llc_sap_state_trans_end;
27+
static const struct llc_sap_state_trans llc_sap_state_trans_end;
2828

2929
/* state LLC_SAP_STATE_INACTIVE transition for
3030
* LLC_SAP_EV_ACTIVATION_REQ event
@@ -34,14 +34,14 @@ static const llc_sap_action_t llc_sap_inactive_state_actions_1[] = {
3434
[1] = NULL,
3535
};
3636

37-
static struct llc_sap_state_trans llc_sap_inactive_state_trans_1 = {
37+
static const struct llc_sap_state_trans llc_sap_inactive_state_trans_1 = {
3838
.ev = llc_sap_ev_activation_req,
3939
.next_state = LLC_SAP_STATE_ACTIVE,
4040
.ev_actions = llc_sap_inactive_state_actions_1,
4141
};
4242

4343
/* array of pointers; one to each transition */
44-
static struct llc_sap_state_trans *llc_sap_inactive_state_transitions[] = {
44+
static const struct llc_sap_state_trans *llc_sap_inactive_state_transitions[] = {
4545
[0] = &llc_sap_inactive_state_trans_1,
4646
[1] = &llc_sap_state_trans_end,
4747
};
@@ -52,7 +52,7 @@ static const llc_sap_action_t llc_sap_active_state_actions_1[] = {
5252
[1] = NULL,
5353
};
5454

55-
static struct llc_sap_state_trans llc_sap_active_state_trans_1 = {
55+
static const struct llc_sap_state_trans llc_sap_active_state_trans_1 = {
5656
.ev = llc_sap_ev_rx_ui,
5757
.next_state = LLC_SAP_STATE_ACTIVE,
5858
.ev_actions = llc_sap_active_state_actions_1,
@@ -64,7 +64,7 @@ static const llc_sap_action_t llc_sap_active_state_actions_2[] = {
6464
[1] = NULL,
6565
};
6666

67-
static struct llc_sap_state_trans llc_sap_active_state_trans_2 = {
67+
static const struct llc_sap_state_trans llc_sap_active_state_trans_2 = {
6868
.ev = llc_sap_ev_unitdata_req,
6969
.next_state = LLC_SAP_STATE_ACTIVE,
7070
.ev_actions = llc_sap_active_state_actions_2,
@@ -76,7 +76,7 @@ static const llc_sap_action_t llc_sap_active_state_actions_3[] = {
7676
[1] = NULL,
7777
};
7878

79-
static struct llc_sap_state_trans llc_sap_active_state_trans_3 = {
79+
static const struct llc_sap_state_trans llc_sap_active_state_trans_3 = {
8080
.ev = llc_sap_ev_xid_req,
8181
.next_state = LLC_SAP_STATE_ACTIVE,
8282
.ev_actions = llc_sap_active_state_actions_3,
@@ -88,7 +88,7 @@ static const llc_sap_action_t llc_sap_active_state_actions_4[] = {
8888
[1] = NULL,
8989
};
9090

91-
static struct llc_sap_state_trans llc_sap_active_state_trans_4 = {
91+
static const struct llc_sap_state_trans llc_sap_active_state_trans_4 = {
9292
.ev = llc_sap_ev_rx_xid_c,
9393
.next_state = LLC_SAP_STATE_ACTIVE,
9494
.ev_actions = llc_sap_active_state_actions_4,
@@ -100,7 +100,7 @@ static const llc_sap_action_t llc_sap_active_state_actions_5[] = {
100100
[1] = NULL,
101101
};
102102

103-
static struct llc_sap_state_trans llc_sap_active_state_trans_5 = {
103+
static const struct llc_sap_state_trans llc_sap_active_state_trans_5 = {
104104
.ev = llc_sap_ev_rx_xid_r,
105105
.next_state = LLC_SAP_STATE_ACTIVE,
106106
.ev_actions = llc_sap_active_state_actions_5,
@@ -112,7 +112,7 @@ static const llc_sap_action_t llc_sap_active_state_actions_6[] = {
112112
[1] = NULL,
113113
};
114114

115-
static struct llc_sap_state_trans llc_sap_active_state_trans_6 = {
115+
static const struct llc_sap_state_trans llc_sap_active_state_trans_6 = {
116116
.ev = llc_sap_ev_test_req,
117117
.next_state = LLC_SAP_STATE_ACTIVE,
118118
.ev_actions = llc_sap_active_state_actions_6,
@@ -124,7 +124,7 @@ static const llc_sap_action_t llc_sap_active_state_actions_7[] = {
124124
[1] = NULL,
125125
};
126126

127-
static struct llc_sap_state_trans llc_sap_active_state_trans_7 = {
127+
static const struct llc_sap_state_trans llc_sap_active_state_trans_7 = {
128128
.ev = llc_sap_ev_rx_test_c,
129129
.next_state = LLC_SAP_STATE_ACTIVE,
130130
.ev_actions = llc_sap_active_state_actions_7
@@ -136,7 +136,7 @@ static const llc_sap_action_t llc_sap_active_state_actions_8[] = {
136136
[1] = NULL,
137137
};
138138

139-
static struct llc_sap_state_trans llc_sap_active_state_trans_8 = {
139+
static const struct llc_sap_state_trans llc_sap_active_state_trans_8 = {
140140
.ev = llc_sap_ev_rx_test_r,
141141
.next_state = LLC_SAP_STATE_ACTIVE,
142142
.ev_actions = llc_sap_active_state_actions_8,
@@ -150,14 +150,14 @@ static const llc_sap_action_t llc_sap_active_state_actions_9[] = {
150150
[1] = NULL,
151151
};
152152

153-
static struct llc_sap_state_trans llc_sap_active_state_trans_9 = {
153+
static const struct llc_sap_state_trans llc_sap_active_state_trans_9 = {
154154
.ev = llc_sap_ev_deactivation_req,
155155
.next_state = LLC_SAP_STATE_INACTIVE,
156156
.ev_actions = llc_sap_active_state_actions_9
157157
};
158158

159159
/* array of pointers; one to each transition */
160-
static struct llc_sap_state_trans *llc_sap_active_state_transitions[] = {
160+
static const struct llc_sap_state_trans *llc_sap_active_state_transitions[] = {
161161
[0] = &llc_sap_active_state_trans_2,
162162
[1] = &llc_sap_active_state_trans_1,
163163
[2] = &llc_sap_active_state_trans_3,

net/llc/llc_sap.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,12 @@ void llc_sap_rtn_pdu(struct llc_sap *sap, struct sk_buff *skb)
114114
* Returns the pointer to found transition on success or %NULL for
115115
* failure.
116116
*/
117-
static struct llc_sap_state_trans *llc_find_sap_trans(struct llc_sap *sap,
118-
struct sk_buff *skb)
117+
static const struct llc_sap_state_trans *llc_find_sap_trans(struct llc_sap *sap,
118+
struct sk_buff *skb)
119119
{
120120
int i = 0;
121-
struct llc_sap_state_trans *rc = NULL;
122-
struct llc_sap_state_trans **next_trans;
121+
const struct llc_sap_state_trans *rc = NULL;
122+
const struct llc_sap_state_trans **next_trans;
123123
struct llc_sap_state *curr_state = &llc_sap_state_table[sap->state - 1];
124124
/*
125125
* Search thru events for this state until list exhausted or until
@@ -143,7 +143,7 @@ static struct llc_sap_state_trans *llc_find_sap_trans(struct llc_sap *sap,
143143
* Returns 0 for success and 1 for failure of at least one action.
144144
*/
145145
static int llc_exec_sap_trans_actions(struct llc_sap *sap,
146-
struct llc_sap_state_trans *trans,
146+
const struct llc_sap_state_trans *trans,
147147
struct sk_buff *skb)
148148
{
149149
int rc = 0;
@@ -166,8 +166,8 @@ static int llc_exec_sap_trans_actions(struct llc_sap *sap,
166166
*/
167167
static int llc_sap_next_state(struct llc_sap *sap, struct sk_buff *skb)
168168
{
169+
const struct llc_sap_state_trans *trans;
169170
int rc = 1;
170-
struct llc_sap_state_trans *trans;
171171

172172
if (sap->state > LLC_NR_SAP_STATES)
173173
goto out;

0 commit comments

Comments
 (0)