Commit 64b39f4a authored by Namjae Jeon's avatar Namjae Jeon Committed by Steve French
Browse files

cifsd: clean-up codes using chechpatch.pl --strict



Dan Carpenter suggested to run chechpatch.pl --strict on ksmbd to fix
check warnings. This patch does not fix all warnings but only things that
I can understand.

Signed-off-by: default avatarNamjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent 7cb82de3
Loading
Loading
Loading
Loading
+46 −71
Original line number Diff line number Diff line
@@ -64,7 +64,6 @@ static char NEGOTIATE_GSS_HEADER[AUTH_GSS_LENGTH] = {
#endif
};


void ksmbd_copy_gss_neg_header(void *buf)
{
	memcpy(buf, NEGOTIATE_GSS_HEADER, AUTH_GSS_LENGTH);
@@ -107,9 +106,7 @@ smbhash(unsigned char *out, const unsigned char *in, unsigned char *key)
	return 0;
}

static int ksmbd_enc_p24(unsigned char *p21,
			 const unsigned char *c8,
			 unsigned char *p24)
static int ksmbd_enc_p24(unsigned char *p21, const unsigned char *c8, unsigned char *p24)
{
	int rc;

@@ -124,8 +121,7 @@ static int ksmbd_enc_p24(unsigned char *p21,
}

/* produce a md4 message digest from data of length n bytes */
static int ksmbd_enc_md4(unsigned char *md4_hash,
			 unsigned char *link_str,
static int ksmbd_enc_md4(unsigned char *md4_hash, unsigned char *link_str,
		int link_len)
{
	int rc;
@@ -157,10 +153,8 @@ static int ksmbd_enc_md4(unsigned char *md4_hash,
	return rc;
}

static int ksmbd_enc_update_sess_key(unsigned char *md5_hash,
				     char *nonce,
				     char *server_challenge,
				     int len)
static int ksmbd_enc_update_sess_key(unsigned char *md5_hash, char *nonce,
		char *server_challenge, int len)
{
	int rc;
	struct ksmbd_crypto_ctx *ctx;
@@ -204,8 +198,7 @@ static int ksmbd_enc_update_sess_key(unsigned char *md5_hash,
 * @hmac:	source hmac value to be used for finding session key
 *
 */
static int ksmbd_gen_sess_key(struct ksmbd_session *sess,
			      char *hash,
static int ksmbd_gen_sess_key(struct ksmbd_session *sess, char *hash,
		char *hmac)
{
	struct ksmbd_crypto_ctx *ctx;
@@ -361,8 +354,9 @@ int ksmbd_auth_ntlm(struct ksmbd_session *sess, char *pw_buf)
	if (strncmp(pw_buf, key, CIFS_AUTH_RESP_SIZE) != 0) {
		ksmbd_debug(AUTH, "ntlmv1 authentication failed\n");
		rc = -EINVAL;
	} else
	} else {
		ksmbd_debug(AUTH, "ntlmv1 authentication pass\n");
	}

	return rc;
}
@@ -376,10 +370,8 @@ int ksmbd_auth_ntlm(struct ksmbd_session *sess, char *pw_buf)
 *
 * Return:	0 on success, error number on error
 */
int ksmbd_auth_ntlmv2(struct ksmbd_session *sess,
		      struct ntlmv2_resp *ntlmv2,
		      int blen,
		      char *domain_name)
int ksmbd_auth_ntlmv2(struct ksmbd_session *sess, struct ntlmv2_resp *ntlmv2,
		int blen, char *domain_name)
{
	char ntlmv2_hash[CIFS_ENCPWD_SIZE];
	char ntlmv2_rsp[CIFS_HMAC_MD5_HASH_SIZE];
@@ -457,8 +449,7 @@ int ksmbd_auth_ntlmv2(struct ksmbd_session *sess,
 *
 * Return:	0 on success, error number on error
 */
static int __ksmbd_auth_ntlmv2(struct ksmbd_session *sess,
			       char *client_nonce,
static int __ksmbd_auth_ntlmv2(struct ksmbd_session *sess, char *client_nonce,
		char *ntlm_resp)
{
	char sess_key[CIFS_SMB1_SESSKEY_SIZE] = {0};
@@ -497,8 +488,7 @@ static int __ksmbd_auth_ntlmv2(struct ksmbd_session *sess,
 * Return:	0 on success, error number on error
 */
int ksmbd_decode_ntlmssp_auth_blob(struct authenticate_message *authblob,
				   int blob_len,
				   struct ksmbd_session *sess)
		int blob_len, struct ksmbd_session *sess)
{
	char *domain_name;
	unsigned int lm_off, nt_off;
@@ -523,8 +513,8 @@ int ksmbd_decode_ntlmssp_auth_blob(struct authenticate_message *authblob,

	/* process NTLM authentication */
	if (nt_len == CIFS_AUTH_RESP_SIZE) {
		if (le32_to_cpu(authblob->NegotiateFlags)
			& NTLMSSP_NEGOTIATE_EXTENDED_SEC)
		if (le32_to_cpu(authblob->NegotiateFlags) &
		    NTLMSSP_NEGOTIATE_EXTENDED_SEC)
			return __ksmbd_auth_ntlmv2(sess, (char *)authblob +
				lm_off, (char *)authblob + nt_off);
		else
@@ -533,8 +523,7 @@ int ksmbd_decode_ntlmssp_auth_blob(struct authenticate_message *authblob,
	}

	/* TODO : use domain name that imported from configuration file */
	domain_name = smb_strndup_from_utf16(
			(const char *)authblob +
	domain_name = smb_strndup_from_utf16((const char *)authblob +
			le32_to_cpu(authblob->DomainName.BufferOffset),
			le16_to_cpu(authblob->DomainName.Length), true,
			sess->conn->local_nls);
@@ -561,8 +550,7 @@ int ksmbd_decode_ntlmssp_auth_blob(struct authenticate_message *authblob,
 *
 */
int ksmbd_decode_ntlmssp_neg_blob(struct negotiate_message *negblob,
				  int blob_len,
				  struct ksmbd_session *sess)
		int blob_len, struct ksmbd_session *sess)
{
	if (blob_len < sizeof(struct negotiate_message)) {
		ksmbd_debug(AUTH, "negotiate blob len %d too small\n",
@@ -675,9 +663,8 @@ ksmbd_build_ntlmssp_challenge_blob(struct challenge_message *chgblob,
}

#ifdef CONFIG_SMB_SERVER_KERBEROS5
int ksmbd_krb5_authenticate(struct ksmbd_session *sess,
			char *in_blob, int in_len,
			char *out_blob, int *out_len)
int ksmbd_krb5_authenticate(struct ksmbd_session *sess, char *in_blob,
		int in_len, char *out_blob, int *out_len)
{
	struct ksmbd_spnego_authen_response *resp;
	struct ksmbd_user *user = NULL;
@@ -726,9 +713,8 @@ int ksmbd_krb5_authenticate(struct ksmbd_session *sess,
	return retval;
}
#else
int ksmbd_krb5_authenticate(struct ksmbd_session *sess,
			char *in_blob, int in_len,
			char *out_blob, int *out_len)
int ksmbd_krb5_authenticate(struct ksmbd_session *sess, char *in_blob,
		int in_len, char *out_blob, int *out_len)
{
	return -EOPNOTSUPP;
}
@@ -743,11 +729,8 @@ int ksmbd_krb5_authenticate(struct ksmbd_session *sess,
 * @sig:	signature value generated for client request packet
 *
 */
int ksmbd_sign_smb2_pdu(struct ksmbd_conn *conn,
			char *key,
			struct kvec *iov,
			int n_vec,
			char *sig)
int ksmbd_sign_smb2_pdu(struct ksmbd_conn *conn, char *key, struct kvec *iov,
		int n_vec, char *sig)
{
	struct ksmbd_crypto_ctx *ctx;
	int rc = -EINVAL;
@@ -798,11 +781,8 @@ int ksmbd_sign_smb2_pdu(struct ksmbd_conn *conn,
 * @sig:	signature value generated for client request packet
 *
 */
int ksmbd_sign_smb3_pdu(struct ksmbd_conn *conn,
			char *key,
			struct kvec *iov,
			int n_vec,
			char *sig)
int ksmbd_sign_smb3_pdu(struct ksmbd_conn *conn, char *key, struct kvec *iov,
		int n_vec, char *sig)
{
	struct ksmbd_crypto_ctx *ctx;
	int rc = -EINVAL;
@@ -1062,8 +1042,7 @@ int ksmbd_gen_smb311_encryptionkey(struct ksmbd_session *sess)
	return generate_smb3encryptionkey(sess, &twin);
}

int ksmbd_gen_preauth_integrity_hash(struct ksmbd_conn *conn,
				     char *buf,
int ksmbd_gen_preauth_integrity_hash(struct ksmbd_conn *conn, char *buf,
		__u8 *pi_hash)
{
	int rc = -1;
@@ -1079,8 +1058,9 @@ int ksmbd_gen_preauth_integrity_hash(struct ksmbd_conn *conn,
			ksmbd_debug(AUTH, "could not alloc sha512 rc %d\n", rc);
			goto out;
		}
	} else
	} else {
		goto out;
	}

	rc = crypto_shash_init(CRYPTO_SHA512(ctx));
	if (rc) {
@@ -1144,10 +1124,8 @@ int ksmbd_gen_sd_hash(struct ksmbd_conn *conn, char *sd_buf, int len,
	return rc;
}

static int ksmbd_get_encryption_key(struct ksmbd_conn *conn,
				    __u64 ses_id,
				    int enc,
				    u8 *key)
static int ksmbd_get_encryption_key(struct ksmbd_conn *conn, __u64 ses_id,
		int enc, u8 *key)
{
	struct ksmbd_session *sess;
	u8 *ses_enc_key;
@@ -1175,8 +1153,7 @@ static inline void smb2_sg_set_buf(struct scatterlist *sg, const void *buf,
	sg_set_page(sg, addr, buflen, offset_in_page(buf));
}

static struct scatterlist *ksmbd_init_sg(struct kvec *iov,
					 unsigned int nvec,
static struct scatterlist *ksmbd_init_sg(struct kvec *iov, unsigned int nvec,
		u8 *sign)
{
	struct scatterlist *sg;
@@ -1190,8 +1167,9 @@ static struct scatterlist *ksmbd_init_sg(struct kvec *iov,
			nr_entries[i] = ((kaddr + iov[i + 1].iov_len +
					PAGE_SIZE - 1) >> PAGE_SHIFT) -
				(kaddr >> PAGE_SHIFT);
		} else
		} else {
			nr_entries[i]++;
		}
		total_entries += nr_entries[i];
	}

@@ -1232,16 +1210,13 @@ static struct scatterlist *ksmbd_init_sg(struct kvec *iov,
			sg_set_page(&sg[sg_idx++], virt_to_page(data), len,
				    offset_in_page(data));
		}

	}
	smb2_sg_set_buf(&sg[sg_idx], sign, SMB2_SIGNATURE_SIZE);
	return sg;
}

int ksmbd_crypt_message(struct ksmbd_conn *conn,
			struct kvec *iov,
			unsigned int nvec,
			int enc)
int ksmbd_crypt_message(struct ksmbd_conn *conn, struct kvec *iov,
		unsigned int nvec, int enc)
{
	struct smb2_transform_hdr *tr_hdr =
		(struct smb2_transform_hdr *)iov[0].iov_base;
@@ -1319,9 +1294,9 @@ int ksmbd_crypt_message(struct ksmbd_conn *conn,
		goto free_sg;
	}

	if (conn->cipher_type == SMB2_ENCRYPTION_AES128_GCM)
	if (conn->cipher_type == SMB2_ENCRYPTION_AES128_GCM) {
		memcpy(iv, (char *)tr_hdr->Nonce, SMB3_AES128GCM_NONCE);
	else {
	} else {
		iv[0] = 3;
		memcpy(iv + 1, (char *)tr_hdr->Nonce, SMB3_AES128CCM_NONCE);
	}
+1 −2
Original line number Diff line number Diff line
@@ -278,8 +278,7 @@ int ksmbd_init_buffer_pools(void)
		goto out;

	filp_cache = kmem_cache_create("ksmbd_file_cache",
					sizeof(struct ksmbd_file), 0,
					SLAB_HWCACHE_ALIGN, NULL);
			sizeof(struct ksmbd_file), 0, SLAB_HWCACHE_ALIGN, NULL);
	if (!filp_cache)
		goto out;

+10 −13
Original line number Diff line number Diff line
@@ -201,9 +201,8 @@ int ksmbd_conn_write(struct ksmbd_work *work)
	return 0;
}

int ksmbd_conn_rdma_read(struct ksmbd_conn *conn,
				void *buf, unsigned int buflen,
				u32 remote_key, u64 remote_offset,
int ksmbd_conn_rdma_read(struct ksmbd_conn *conn, void *buf,
		unsigned int buflen, u32 remote_key, u64 remote_offset,
		u32 remote_len)
{
	int ret = -EINVAL;
@@ -216,9 +215,8 @@ int ksmbd_conn_rdma_read(struct ksmbd_conn *conn,
	return ret;
}

int ksmbd_conn_rdma_write(struct ksmbd_conn *conn,
				void *buf, unsigned int buflen,
				u32 remote_key, u64 remote_offset,
int ksmbd_conn_rdma_write(struct ksmbd_conn *conn, void *buf,
		unsigned int buflen, u32 remote_key, u64 remote_offset,
		u32 remote_len)
{
	int ret = -EINVAL;
@@ -393,8 +391,7 @@ static void stop_sessions(void)
		task = conn->transport->handler;
		if (task)
			ksmbd_debug(CONN, "Stop session handler %s/%d\n",
				  task->comm,
				  task_pid_nr(task));
				  task->comm, task_pid_nr(task));
		conn->status = KSMBD_SESS_EXITING;
	}
	read_unlock(&conn_list_lock);
+15 −19
Original line number Diff line number Diff line
@@ -116,17 +116,15 @@ struct ksmbd_conn_ops {
struct ksmbd_transport_ops {
	int (*prepare)(struct ksmbd_transport *t);
	void (*disconnect)(struct ksmbd_transport *t);
	int (*read)(struct ksmbd_transport *t,
			char *buf, unsigned int size);
	int (*writev)(struct ksmbd_transport *t,
			struct kvec *iovs, int niov, int size,
			bool need_invalidate_rkey, unsigned int remote_key);
	int (*rdma_read)(struct ksmbd_transport *t,
				void *buf, unsigned int len, u32 remote_key,
				u64 remote_offset, u32 remote_len);
	int (*rdma_write)(struct ksmbd_transport *t,
				void *buf, unsigned int len, u32 remote_key,
				u64 remote_offset, u32 remote_len);
	int (*read)(struct ksmbd_transport *t, char *buf, unsigned int size);
	int (*writev)(struct ksmbd_transport *t, struct kvec *iovs, int niov,
			int size, bool need_invalidate_rkey,
			unsigned int remote_key);
	int (*rdma_read)(struct ksmbd_transport *t, void *buf, unsigned int len,
			u32 remote_key, u64 remote_offset, u32 remote_len);
	int (*rdma_write)(struct ksmbd_transport *t, void *buf,
			unsigned int len, u32 remote_key, u64 remote_offset,
			u32 remote_len);
};

struct ksmbd_transport {
@@ -146,13 +144,11 @@ struct ksmbd_conn *ksmbd_conn_alloc(void);
void ksmbd_conn_free(struct ksmbd_conn *conn);
bool ksmbd_conn_lookup_dialect(struct ksmbd_conn *c);
int ksmbd_conn_write(struct ksmbd_work *work);
int ksmbd_conn_rdma_read(struct ksmbd_conn *conn,
				void *buf, unsigned int buflen,
				u32 remote_key, u64 remote_offset,
int ksmbd_conn_rdma_read(struct ksmbd_conn *conn, void *buf,
		unsigned int buflen, u32 remote_key, u64 remote_offset,
		u32 remote_len);
int ksmbd_conn_rdma_write(struct ksmbd_conn *conn,
				void *buf, unsigned int buflen,
				u32 remote_key, u64 remote_offset,
int ksmbd_conn_rdma_write(struct ksmbd_conn *conn, void *buf,
		unsigned int buflen, u32 remote_key, u64 remote_offset,
		u32 remote_len);

void ksmbd_conn_enqueue_request(struct ksmbd_work *work);
+7 −7
Original line number Diff line number Diff line
@@ -24,13 +24,13 @@ extern int ksmbd_caseless_search;
#define DATA_STREAM	1
#define DIR_STREAM	2

#define KSMBD_DEBUG_SMB         (1 << 0)
#define KSMBD_DEBUG_AUTH        (1 << 1)
#define KSMBD_DEBUG_VFS         (1 << 2)
#define KSMBD_DEBUG_OPLOCK      (1 << 3)
#define KSMBD_DEBUG_IPC         (1 << 4)
#define KSMBD_DEBUG_CONN        (1 << 5)
#define KSMBD_DEBUG_RDMA        (1 << 6)
#define KSMBD_DEBUG_SMB		BIT(0)
#define KSMBD_DEBUG_AUTH	BIT(1)
#define KSMBD_DEBUG_VFS		BIT(2)
#define KSMBD_DEBUG_OPLOCK      BIT(3)
#define KSMBD_DEBUG_IPC         BIT(4)
#define KSMBD_DEBUG_CONN        BIT(5)
#define KSMBD_DEBUG_RDMA        BIT(6)
#define KSMBD_DEBUG_ALL         (KSMBD_DEBUG_SMB | KSMBD_DEBUG_AUTH |	\
				KSMBD_DEBUG_VFS | KSMBD_DEBUG_OPLOCK |	\
				KSMBD_DEBUG_IPC | KSMBD_DEBUG_CONN |	\
Loading