lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 2 Feb 2018 00:29:39 +0000
From:   Bart Van Assche <Bart.VanAssche@....com>
To:     "linux-scsi@...r.kernel.org" <linux-scsi@...r.kernel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        "jaegeuk@...nel.org" <jaegeuk@...nel.org>,
        "gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>,
        Stanislav Nijnikov <Stanislav.Nijnikov@....com>
CC:     Alex Lemberg <Alex.Lemberg@....com>
Subject: Re: [PATCH v4 02/10] ufs: sysfs: device descriptor

On Thu, 2018-02-01 at 18:15 +0200, Stanislav Nijnikov wrote:
> +ssize_t ufs_sysfs_read_desc_param(struct ufs_hba *hba,
> +				  enum desc_idn desc_id,
> +				  u8 desc_index,
> +				  u8 param_offset,
> +				  u8 *sysfs_buf,
> +				  u8 param_size)
> +{
> +	u8 desc_buf[UFS_PARAM_QWORD_SIZE] = {0};
> +	int ret;
> +
> +	if (param_size > UFS_PARAM_QWORD_SIZE)
> +		return -EINVAL;
> +
> +	ret = ufshcd_read_desc_param(hba, desc_id, desc_index,
> +				param_offset, desc_buf, param_size);
> +	if (ret)
> +		return -EINVAL;
> +	switch (param_size) {
> +	case UFS_PARAM_BYTE_SIZE:
> +		ret = sprintf(sysfs_buf, "0x%02X\n", *desc_buf);
> +		break;
> +	case UFS_PARAM_WORD_SIZE:
> +		ret = sprintf(sysfs_buf, "0x%04X\n",
> +			be16_to_cpu(*((u16 *)desc_buf)));
> +		break;
> +	case UFS_PARAM_DWORD_SIZE:
> +		ret = sprintf(sysfs_buf, "0x%08X\n",
> +			be32_to_cpu(*((u32 *)desc_buf)));
> +		break;
> +	case UFS_PARAM_QWORD_SIZE:
> +		ret = sprintf(sysfs_buf, "0x%016llX\n",
> +			be64_to_cpu(*((u64 *)desc_buf)));
> +		break;
> +	}
> +
> +	return ret;
> +}

Seeing code like this makes me wonder whether this patch series has been verified
with sparse? I think sparse will complain about all three be*_to_cpu() casts above.
Please use get_unaligned_be*() instead of open-coding these functions.

Thanks,

Bart.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ