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]
Message-ID: <724bcb6f-775d-a7be-d47c-447dc8ac4c19@milecki.pl>
Date:   Mon, 20 Feb 2023 09:01:36 +0100
From:   Rafał Miłecki <rafal@...ecki.pl>
To:     INAGAKI Hiroshi <musashino.open@...il.com>,
        srinivas.kandagatla@...aro.org
Cc:     chunkeey@...il.com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3] nvmem: u-boot-env: align endianness of crc32 values

On 13.02.2023 14:23, INAGAKI Hiroshi wrote:
> @@ -117,8 +117,8 @@ static int u_boot_env_parse(struct u_boot_env *priv)
>   	size_t crc32_offset;
>   	size_t data_offset;
>   	size_t data_len;
> -	uint32_t crc32;
> -	uint32_t calc;
> +	__le32 crc32;
> +	__le32 calc;
>   	size_t bytes;
>   	uint8_t *buf;
>   	int err;
> @@ -152,11 +152,11 @@ static int u_boot_env_parse(struct u_boot_env *priv)
>   		data_offset = offsetof(struct u_boot_env_image_broadcom, data);
>   		break;
>   	}
> -	crc32 = le32_to_cpu(*(__le32 *)(buf + crc32_offset));
> +	crc32 = cpu_to_le32(*(uint32_t *)(buf + crc32_offset));
>   	crc32_data_len = priv->mtd->size - crc32_data_offset;
>   	data_len = priv->mtd->size - data_offset;
>   
> -	calc = crc32(~0, buf + crc32_data_offset, crc32_data_len) ^ ~0L;
> +	calc = cpu_to_le32(crc32(~0, buf + crc32_data_offset, crc32_data_len) ^ ~0L);

Can you see what happens on BE device if instead of this whole patch you
just replace crc32() in above line with crc32_le()?


>   	if (calc != crc32) {
>   		dev_err(dev, "Invalid calculated CRC32: 0x%08x (expected: 0x%08x)\n", calc, crc32);
>   		err = -EINVAL;

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ