nfc: constify several pointers to u8, char and sk_buff
[ Upstream commit 3df40eb3a2ea58bf404a38f15a7a2768e4762cb0 ] Several functions receive pointers to u8, char or sk_buff but do not modify the contents so make them const. This allows doing the same for local variables and in total makes the code a little bit safer. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org> Stable-dep-of: 0d9b41daa590 ("nfc: llcp: fix possible use of uninitialized variable in nfc_llcp_send_connect()") Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
This commit is contained in:
committed by
Ansh
parent
096bebc4c8
commit
8c8fdfd605
@@ -278,7 +278,7 @@ struct sk_buff *nfc_alloc_send_skb(struct nfc_dev *dev, struct sock *sk,
|
||||
struct sk_buff *nfc_alloc_recv_skb(unsigned int size, gfp_t gfp);
|
||||
|
||||
int nfc_set_remote_general_bytes(struct nfc_dev *dev,
|
||||
u8 *gt, u8 gt_len);
|
||||
const u8 *gt, u8 gt_len);
|
||||
u8 *nfc_get_local_general_bytes(struct nfc_dev *dev, size_t *gb_len);
|
||||
|
||||
int nfc_fw_download_done(struct nfc_dev *dev, const char *firmware_name,
|
||||
@@ -292,7 +292,7 @@ int nfc_dep_link_is_up(struct nfc_dev *dev, u32 target_idx,
|
||||
u8 comm_mode, u8 rf_mode);
|
||||
|
||||
int nfc_tm_activated(struct nfc_dev *dev, u32 protocol, u8 comm_mode,
|
||||
u8 *gb, size_t gb_len);
|
||||
const u8 *gb, size_t gb_len);
|
||||
int nfc_tm_deactivated(struct nfc_dev *dev);
|
||||
int nfc_tm_data_received(struct nfc_dev *dev, struct sk_buff *skb);
|
||||
|
||||
|
||||
@@ -646,7 +646,7 @@ error:
|
||||
return rc;
|
||||
}
|
||||
|
||||
int nfc_set_remote_general_bytes(struct nfc_dev *dev, u8 *gb, u8 gb_len)
|
||||
int nfc_set_remote_general_bytes(struct nfc_dev *dev, const u8 *gb, u8 gb_len)
|
||||
{
|
||||
pr_debug("dev_name=%s gb_len=%d\n", dev_name(&dev->dev), gb_len);
|
||||
|
||||
@@ -675,7 +675,7 @@ int nfc_tm_data_received(struct nfc_dev *dev, struct sk_buff *skb)
|
||||
EXPORT_SYMBOL(nfc_tm_data_received);
|
||||
|
||||
int nfc_tm_activated(struct nfc_dev *dev, u32 protocol, u8 comm_mode,
|
||||
u8 *gb, size_t gb_len)
|
||||
const u8 *gb, size_t gb_len)
|
||||
{
|
||||
int rc;
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@ static bool llc_shdlc_x_lteq_y_lt_z(int x, int y, int z)
|
||||
return ((y >= x) || (y < z)) ? true : false;
|
||||
}
|
||||
|
||||
static struct sk_buff *llc_shdlc_alloc_skb(struct llc_shdlc *shdlc,
|
||||
static struct sk_buff *llc_shdlc_alloc_skb(const struct llc_shdlc *shdlc,
|
||||
int payload_len)
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
@@ -148,7 +148,7 @@ static struct sk_buff *llc_shdlc_alloc_skb(struct llc_shdlc *shdlc,
|
||||
}
|
||||
|
||||
/* immediately sends an S frame. */
|
||||
static int llc_shdlc_send_s_frame(struct llc_shdlc *shdlc,
|
||||
static int llc_shdlc_send_s_frame(const struct llc_shdlc *shdlc,
|
||||
enum sframe_type sframe_type, int nr)
|
||||
{
|
||||
int r;
|
||||
@@ -170,7 +170,7 @@ static int llc_shdlc_send_s_frame(struct llc_shdlc *shdlc,
|
||||
}
|
||||
|
||||
/* immediately sends an U frame. skb may contain optional payload */
|
||||
static int llc_shdlc_send_u_frame(struct llc_shdlc *shdlc,
|
||||
static int llc_shdlc_send_u_frame(const struct llc_shdlc *shdlc,
|
||||
struct sk_buff *skb,
|
||||
enum uframe_modifier uframe_modifier)
|
||||
{
|
||||
@@ -372,7 +372,7 @@ static void llc_shdlc_connect_complete(struct llc_shdlc *shdlc, int r)
|
||||
wake_up(shdlc->connect_wq);
|
||||
}
|
||||
|
||||
static int llc_shdlc_connect_initiate(struct llc_shdlc *shdlc)
|
||||
static int llc_shdlc_connect_initiate(const struct llc_shdlc *shdlc)
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
|
||||
@@ -388,7 +388,7 @@ static int llc_shdlc_connect_initiate(struct llc_shdlc *shdlc)
|
||||
return llc_shdlc_send_u_frame(shdlc, skb, U_FRAME_RSET);
|
||||
}
|
||||
|
||||
static int llc_shdlc_connect_send_ua(struct llc_shdlc *shdlc)
|
||||
static int llc_shdlc_connect_send_ua(const struct llc_shdlc *shdlc)
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
|
||||
|
||||
@@ -233,15 +233,15 @@ struct sock *nfc_llcp_accept_dequeue(struct sock *sk, struct socket *newsock);
|
||||
|
||||
/* TLV API */
|
||||
int nfc_llcp_parse_gb_tlv(struct nfc_llcp_local *local,
|
||||
u8 *tlv_array, u16 tlv_array_len);
|
||||
const u8 *tlv_array, u16 tlv_array_len);
|
||||
int nfc_llcp_parse_connection_tlv(struct nfc_llcp_sock *sock,
|
||||
u8 *tlv_array, u16 tlv_array_len);
|
||||
const u8 *tlv_array, u16 tlv_array_len);
|
||||
|
||||
/* Commands API */
|
||||
void nfc_llcp_recv(void *data, struct sk_buff *skb, int err);
|
||||
u8 *nfc_llcp_build_tlv(u8 type, u8 *value, u8 value_length, u8 *tlv_length);
|
||||
u8 *nfc_llcp_build_tlv(u8 type, const u8 *value, u8 value_length, u8 *tlv_length);
|
||||
struct nfc_llcp_sdp_tlv *nfc_llcp_build_sdres_tlv(u8 tid, u8 sap);
|
||||
struct nfc_llcp_sdp_tlv *nfc_llcp_build_sdreq_tlv(u8 tid, char *uri,
|
||||
struct nfc_llcp_sdp_tlv *nfc_llcp_build_sdreq_tlv(u8 tid, const char *uri,
|
||||
size_t uri_len);
|
||||
void nfc_llcp_free_sdp_tlv(struct nfc_llcp_sdp_tlv *sdp);
|
||||
void nfc_llcp_free_sdp_tlv_list(struct hlist_head *sdp_head);
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
#include "nfc.h"
|
||||
#include "llcp.h"
|
||||
|
||||
static u8 llcp_tlv_length[LLCP_TLV_MAX] = {
|
||||
static const u8 llcp_tlv_length[LLCP_TLV_MAX] = {
|
||||
0,
|
||||
1, /* VERSION */
|
||||
2, /* MIUX */
|
||||
@@ -41,7 +41,7 @@ static u8 llcp_tlv_length[LLCP_TLV_MAX] = {
|
||||
|
||||
};
|
||||
|
||||
static u8 llcp_tlv8(u8 *tlv, u8 type)
|
||||
static u8 llcp_tlv8(const u8 *tlv, u8 type)
|
||||
{
|
||||
if (tlv[0] != type || tlv[1] != llcp_tlv_length[tlv[0]])
|
||||
return 0;
|
||||
@@ -49,7 +49,7 @@ static u8 llcp_tlv8(u8 *tlv, u8 type)
|
||||
return tlv[2];
|
||||
}
|
||||
|
||||
static u16 llcp_tlv16(u8 *tlv, u8 type)
|
||||
static u16 llcp_tlv16(const u8 *tlv, u8 type)
|
||||
{
|
||||
if (tlv[0] != type || tlv[1] != llcp_tlv_length[tlv[0]])
|
||||
return 0;
|
||||
@@ -58,37 +58,37 @@ static u16 llcp_tlv16(u8 *tlv, u8 type)
|
||||
}
|
||||
|
||||
|
||||
static u8 llcp_tlv_version(u8 *tlv)
|
||||
static u8 llcp_tlv_version(const u8 *tlv)
|
||||
{
|
||||
return llcp_tlv8(tlv, LLCP_TLV_VERSION);
|
||||
}
|
||||
|
||||
static u16 llcp_tlv_miux(u8 *tlv)
|
||||
static u16 llcp_tlv_miux(const u8 *tlv)
|
||||
{
|
||||
return llcp_tlv16(tlv, LLCP_TLV_MIUX) & 0x7ff;
|
||||
}
|
||||
|
||||
static u16 llcp_tlv_wks(u8 *tlv)
|
||||
static u16 llcp_tlv_wks(const u8 *tlv)
|
||||
{
|
||||
return llcp_tlv16(tlv, LLCP_TLV_WKS);
|
||||
}
|
||||
|
||||
static u16 llcp_tlv_lto(u8 *tlv)
|
||||
static u16 llcp_tlv_lto(const u8 *tlv)
|
||||
{
|
||||
return llcp_tlv8(tlv, LLCP_TLV_LTO);
|
||||
}
|
||||
|
||||
static u8 llcp_tlv_opt(u8 *tlv)
|
||||
static u8 llcp_tlv_opt(const u8 *tlv)
|
||||
{
|
||||
return llcp_tlv8(tlv, LLCP_TLV_OPT);
|
||||
}
|
||||
|
||||
static u8 llcp_tlv_rw(u8 *tlv)
|
||||
static u8 llcp_tlv_rw(const u8 *tlv)
|
||||
{
|
||||
return llcp_tlv8(tlv, LLCP_TLV_RW) & 0xf;
|
||||
}
|
||||
|
||||
u8 *nfc_llcp_build_tlv(u8 type, u8 *value, u8 value_length, u8 *tlv_length)
|
||||
u8 *nfc_llcp_build_tlv(u8 type, const u8 *value, u8 value_length, u8 *tlv_length)
|
||||
{
|
||||
u8 *tlv, length;
|
||||
|
||||
@@ -142,7 +142,7 @@ struct nfc_llcp_sdp_tlv *nfc_llcp_build_sdres_tlv(u8 tid, u8 sap)
|
||||
return sdres;
|
||||
}
|
||||
|
||||
struct nfc_llcp_sdp_tlv *nfc_llcp_build_sdreq_tlv(u8 tid, char *uri,
|
||||
struct nfc_llcp_sdp_tlv *nfc_llcp_build_sdreq_tlv(u8 tid, const char *uri,
|
||||
size_t uri_len)
|
||||
{
|
||||
struct nfc_llcp_sdp_tlv *sdreq;
|
||||
@@ -202,9 +202,10 @@ void nfc_llcp_free_sdp_tlv_list(struct hlist_head *head)
|
||||
}
|
||||
|
||||
int nfc_llcp_parse_gb_tlv(struct nfc_llcp_local *local,
|
||||
u8 *tlv_array, u16 tlv_array_len)
|
||||
const u8 *tlv_array, u16 tlv_array_len)
|
||||
{
|
||||
u8 *tlv = tlv_array, type, length, offset = 0;
|
||||
const u8 *tlv = tlv_array;
|
||||
u8 type, length, offset = 0;
|
||||
|
||||
pr_debug("TLV array length %d\n", tlv_array_len);
|
||||
|
||||
@@ -251,9 +252,10 @@ int nfc_llcp_parse_gb_tlv(struct nfc_llcp_local *local,
|
||||
}
|
||||
|
||||
int nfc_llcp_parse_connection_tlv(struct nfc_llcp_sock *sock,
|
||||
u8 *tlv_array, u16 tlv_array_len)
|
||||
const u8 *tlv_array, u16 tlv_array_len)
|
||||
{
|
||||
u8 *tlv = tlv_array, type, length, offset = 0;
|
||||
const u8 *tlv = tlv_array;
|
||||
u8 type, length, offset = 0;
|
||||
|
||||
pr_debug("TLV array length %d\n", tlv_array_len);
|
||||
|
||||
@@ -307,7 +309,7 @@ static struct sk_buff *llcp_add_header(struct sk_buff *pdu,
|
||||
return pdu;
|
||||
}
|
||||
|
||||
static struct sk_buff *llcp_add_tlv(struct sk_buff *pdu, u8 *tlv,
|
||||
static struct sk_buff *llcp_add_tlv(struct sk_buff *pdu, const u8 *tlv,
|
||||
u8 tlv_length)
|
||||
{
|
||||
/* XXX Add an skb length check */
|
||||
@@ -401,9 +403,10 @@ int nfc_llcp_send_connect(struct nfc_llcp_sock *sock)
|
||||
{
|
||||
struct nfc_llcp_local *local;
|
||||
struct sk_buff *skb;
|
||||
u8 *service_name_tlv = NULL, service_name_tlv_length;
|
||||
u8 *miux_tlv = NULL, miux_tlv_length;
|
||||
u8 *rw_tlv = NULL, rw_tlv_length, rw;
|
||||
const u8 *service_name_tlv = NULL;
|
||||
const u8 *miux_tlv = NULL;
|
||||
const u8 *rw_tlv = NULL;
|
||||
u8 service_name_tlv_length, miux_tlv_length, rw_tlv_length, rw;
|
||||
int err;
|
||||
u16 size = 0;
|
||||
__be16 miux;
|
||||
@@ -477,8 +480,9 @@ int nfc_llcp_send_cc(struct nfc_llcp_sock *sock)
|
||||
{
|
||||
struct nfc_llcp_local *local;
|
||||
struct sk_buff *skb;
|
||||
u8 *miux_tlv = NULL, miux_tlv_length;
|
||||
u8 *rw_tlv = NULL, rw_tlv_length, rw;
|
||||
const u8 *miux_tlv = NULL;
|
||||
const u8 *rw_tlv = NULL;
|
||||
u8 miux_tlv_length, rw_tlv_length, rw;
|
||||
int err;
|
||||
u16 size = 0;
|
||||
__be16 miux;
|
||||
|
||||
@@ -329,7 +329,7 @@ static char *wks[] = {
|
||||
"urn:nfc:sn:snep",
|
||||
};
|
||||
|
||||
static int nfc_llcp_wks_sap(char *service_name, size_t service_name_len)
|
||||
static int nfc_llcp_wks_sap(const char *service_name, size_t service_name_len)
|
||||
{
|
||||
int sap, num_wks;
|
||||
|
||||
@@ -353,7 +353,7 @@ static int nfc_llcp_wks_sap(char *service_name, size_t service_name_len)
|
||||
|
||||
static
|
||||
struct nfc_llcp_sock *nfc_llcp_sock_from_sn(struct nfc_llcp_local *local,
|
||||
u8 *sn, size_t sn_len)
|
||||
const u8 *sn, size_t sn_len)
|
||||
{
|
||||
struct sock *sk;
|
||||
struct nfc_llcp_sock *llcp_sock, *tmp_sock;
|
||||
@@ -550,7 +550,7 @@ static int nfc_llcp_build_gb(struct nfc_llcp_local *local)
|
||||
{
|
||||
u8 *gb_cur, version, version_length;
|
||||
u8 lto_length, wks_length, miux_length;
|
||||
u8 *version_tlv = NULL, *lto_tlv = NULL,
|
||||
const u8 *version_tlv = NULL, *lto_tlv = NULL,
|
||||
*wks_tlv = NULL, *miux_tlv = NULL;
|
||||
__be16 wks = cpu_to_be16(local->local_wks);
|
||||
u8 gb_len = 0;
|
||||
@@ -640,7 +640,7 @@ u8 *nfc_llcp_general_bytes(struct nfc_dev *dev, size_t *general_bytes_len)
|
||||
return local->gb;
|
||||
}
|
||||
|
||||
int nfc_llcp_set_remote_gb(struct nfc_dev *dev, u8 *gb, u8 gb_len)
|
||||
int nfc_llcp_set_remote_gb(struct nfc_dev *dev, const u8 *gb, u8 gb_len)
|
||||
{
|
||||
struct nfc_llcp_local *local;
|
||||
|
||||
@@ -667,27 +667,27 @@ int nfc_llcp_set_remote_gb(struct nfc_dev *dev, u8 *gb, u8 gb_len)
|
||||
local->remote_gb_len - 3);
|
||||
}
|
||||
|
||||
static u8 nfc_llcp_dsap(struct sk_buff *pdu)
|
||||
static u8 nfc_llcp_dsap(const struct sk_buff *pdu)
|
||||
{
|
||||
return (pdu->data[0] & 0xfc) >> 2;
|
||||
}
|
||||
|
||||
static u8 nfc_llcp_ptype(struct sk_buff *pdu)
|
||||
static u8 nfc_llcp_ptype(const struct sk_buff *pdu)
|
||||
{
|
||||
return ((pdu->data[0] & 0x03) << 2) | ((pdu->data[1] & 0xc0) >> 6);
|
||||
}
|
||||
|
||||
static u8 nfc_llcp_ssap(struct sk_buff *pdu)
|
||||
static u8 nfc_llcp_ssap(const struct sk_buff *pdu)
|
||||
{
|
||||
return pdu->data[1] & 0x3f;
|
||||
}
|
||||
|
||||
static u8 nfc_llcp_ns(struct sk_buff *pdu)
|
||||
static u8 nfc_llcp_ns(const struct sk_buff *pdu)
|
||||
{
|
||||
return pdu->data[2] >> 4;
|
||||
}
|
||||
|
||||
static u8 nfc_llcp_nr(struct sk_buff *pdu)
|
||||
static u8 nfc_llcp_nr(const struct sk_buff *pdu)
|
||||
{
|
||||
return pdu->data[2] & 0xf;
|
||||
}
|
||||
@@ -829,7 +829,7 @@ out:
|
||||
}
|
||||
|
||||
static struct nfc_llcp_sock *nfc_llcp_sock_get_sn(struct nfc_llcp_local *local,
|
||||
u8 *sn, size_t sn_len)
|
||||
const u8 *sn, size_t sn_len)
|
||||
{
|
||||
struct nfc_llcp_sock *llcp_sock;
|
||||
|
||||
@@ -843,9 +843,10 @@ static struct nfc_llcp_sock *nfc_llcp_sock_get_sn(struct nfc_llcp_local *local,
|
||||
return llcp_sock;
|
||||
}
|
||||
|
||||
static u8 *nfc_llcp_connect_sn(struct sk_buff *skb, size_t *sn_len)
|
||||
static const u8 *nfc_llcp_connect_sn(const struct sk_buff *skb, size_t *sn_len)
|
||||
{
|
||||
u8 *tlv = &skb->data[2], type, length;
|
||||
u8 type, length;
|
||||
const u8 *tlv = &skb->data[2];
|
||||
size_t tlv_array_len = skb->len - LLCP_HEADER_SIZE, offset = 0;
|
||||
|
||||
while (offset < tlv_array_len) {
|
||||
@@ -903,7 +904,7 @@ static void nfc_llcp_recv_ui(struct nfc_llcp_local *local,
|
||||
}
|
||||
|
||||
static void nfc_llcp_recv_connect(struct nfc_llcp_local *local,
|
||||
struct sk_buff *skb)
|
||||
const struct sk_buff *skb)
|
||||
{
|
||||
struct sock *new_sk, *parent;
|
||||
struct nfc_llcp_sock *sock, *new_sock;
|
||||
@@ -921,7 +922,7 @@ static void nfc_llcp_recv_connect(struct nfc_llcp_local *local,
|
||||
goto fail;
|
||||
}
|
||||
} else {
|
||||
u8 *sn;
|
||||
const u8 *sn;
|
||||
size_t sn_len;
|
||||
|
||||
sn = nfc_llcp_connect_sn(skb, &sn_len);
|
||||
@@ -1149,7 +1150,7 @@ static void nfc_llcp_recv_hdlc(struct nfc_llcp_local *local,
|
||||
}
|
||||
|
||||
static void nfc_llcp_recv_disc(struct nfc_llcp_local *local,
|
||||
struct sk_buff *skb)
|
||||
const struct sk_buff *skb)
|
||||
{
|
||||
struct nfc_llcp_sock *llcp_sock;
|
||||
struct sock *sk;
|
||||
@@ -1192,7 +1193,8 @@ static void nfc_llcp_recv_disc(struct nfc_llcp_local *local,
|
||||
nfc_llcp_sock_put(llcp_sock);
|
||||
}
|
||||
|
||||
static void nfc_llcp_recv_cc(struct nfc_llcp_local *local, struct sk_buff *skb)
|
||||
static void nfc_llcp_recv_cc(struct nfc_llcp_local *local,
|
||||
const struct sk_buff *skb)
|
||||
{
|
||||
struct nfc_llcp_sock *llcp_sock;
|
||||
struct sock *sk;
|
||||
@@ -1225,7 +1227,8 @@ static void nfc_llcp_recv_cc(struct nfc_llcp_local *local, struct sk_buff *skb)
|
||||
nfc_llcp_sock_put(llcp_sock);
|
||||
}
|
||||
|
||||
static void nfc_llcp_recv_dm(struct nfc_llcp_local *local, struct sk_buff *skb)
|
||||
static void nfc_llcp_recv_dm(struct nfc_llcp_local *local,
|
||||
const struct sk_buff *skb)
|
||||
{
|
||||
struct nfc_llcp_sock *llcp_sock;
|
||||
struct sock *sk;
|
||||
@@ -1263,12 +1266,13 @@ static void nfc_llcp_recv_dm(struct nfc_llcp_local *local, struct sk_buff *skb)
|
||||
}
|
||||
|
||||
static void nfc_llcp_recv_snl(struct nfc_llcp_local *local,
|
||||
struct sk_buff *skb)
|
||||
const struct sk_buff *skb)
|
||||
{
|
||||
struct nfc_llcp_sock *llcp_sock;
|
||||
u8 dsap, ssap, *tlv, type, length, tid, sap;
|
||||
u8 dsap, ssap, type, length, tid, sap;
|
||||
const u8 *tlv;
|
||||
u16 tlv_len, offset;
|
||||
char *service_name;
|
||||
const char *service_name;
|
||||
size_t service_name_len;
|
||||
struct nfc_llcp_sdp_tlv *sdp;
|
||||
HLIST_HEAD(llc_sdres_list);
|
||||
|
||||
@@ -60,7 +60,7 @@ void nfc_llcp_mac_is_up(struct nfc_dev *dev, u32 target_idx,
|
||||
u8 comm_mode, u8 rf_mode);
|
||||
int nfc_llcp_register_device(struct nfc_dev *dev);
|
||||
void nfc_llcp_unregister_device(struct nfc_dev *dev);
|
||||
int nfc_llcp_set_remote_gb(struct nfc_dev *dev, u8 *gb, u8 gb_len);
|
||||
int nfc_llcp_set_remote_gb(struct nfc_dev *dev, const u8 *gb, u8 gb_len);
|
||||
u8 *nfc_llcp_general_bytes(struct nfc_dev *dev, size_t *general_bytes_len);
|
||||
int nfc_llcp_data_received(struct nfc_dev *dev, struct sk_buff *skb);
|
||||
struct nfc_llcp_local *nfc_llcp_find_local(struct nfc_dev *dev);
|
||||
|
||||
Reference in New Issue
Block a user