[Mesa-dev] [PATCH 1/3] util: Fix SHA1 implementation on big endian
Eric Engestrom
eric.engestrom at imgtec.com
Fri Nov 24 10:25:02 UTC 2017
On Thursday, 2017-11-23 11:08:04 -0800, Matt Turner wrote:
> The code defines a macro blk0(i) based on the preprocessor condition
> BYTE_ORDER == LITTLE_ENDIAN. If true, blk0(i) is defined as a byte swap
> operation. Unfortunately, if the preprocessor macros used in the test
> are no defined, then the comparison becomes 0 == 0 and it evaluates as
> true.
> ---
> src/util/sha1/sha1.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/src/util/sha1/sha1.c b/src/util/sha1/sha1.c
> index ef59ea1dfc..2c629520c3 100644
> --- a/src/util/sha1/sha1.c
> +++ b/src/util/sha1/sha1.c
> @@ -16,8 +16,17 @@
>
> #include <stdint.h>
> #include <string.h>
> +#include "u_endian.h"
If you're including this header, why not use
`#ifdef PIPE_ARCH_LITTLE_ENDIAN` instead of
`#if BYTE_ORDER == LITTLE_ENDIAN`?
`#error` becomes unnecessary
> #include "sha1.h"
>
> +#ifndef BYTE_ORDER
> +#error BYTE_ORDER not defined
> +#endif
> +
> +#ifndef LITTLE_ENDIAN
> +#error LITTLE_ENDIAN no defined
> +#endif
> +
> #define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
>
> /*
> --
> 2.13.6
>
More information about the mesa-dev
mailing list