123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- From 608738ccad9ac3743ccd535bde1e84f401e6176f Mon Sep 17 00:00:00 2001
- From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
- Date: Sat, 20 Jun 2020 12:50:40 +0200
- Subject: [PATCH] sha2/sha2.c: fix build on big endian
- Build is broken since 865ec9ba1d44e629c1107c299aebd20e901a19ff because
- tmp is undefined in put32be and put64be:
- sha2.c: In function 'put32be':
- sha2.c:177:34: error: 'tmp' undeclared (first use in this function)
- MEMCPY_BCOPY(data, &val, sizeof(tmp));
- ^~~
- Fix this error by replacing tmp by val
- Moreover, move MEMCPY_BCOPY before its usage or linking step will fail
- Fixes:
- - http://autobuild.buildroot.org/results/e8704e02fdede7b63e22da552292977b23380b32
- Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
- [Upstream: https://github.com/eclipse/tinydtls/commit/78a2d32f47165eda10cbf8f5cf79f86fa1c4872b]
- ---
- sha2/sha2.c | 58 ++++++++++++++++++++++++++---------------------------
- 1 file changed, 29 insertions(+), 29 deletions(-)
- diff --git a/sha2/sha2.c b/sha2/sha2.c
- index cb6d90f..5c794c6 100644
- --- a/sha2/sha2.c
- +++ b/sha2/sha2.c
- @@ -114,6 +114,33 @@
- #error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN
- #endif
-
- +/*
- + * Macros for copying blocks of memory and for zeroing out ranges
- + * of memory. Using these macros makes it easy to switch from
- + * using memset()/memcpy() and using bzero()/bcopy().
- + *
- + * Please define either SHA2_USE_MEMSET_MEMCPY or define
- + * SHA2_USE_BZERO_BCOPY depending on which function set you
- + * choose to use:
- + */
- +#if !defined(SHA2_USE_MEMSET_MEMCPY) && !defined(SHA2_USE_BZERO_BCOPY)
- +/* Default to memset()/memcpy() if no option is specified */
- +#define SHA2_USE_MEMSET_MEMCPY 1
- +#endif
- +#if defined(SHA2_USE_MEMSET_MEMCPY) && defined(SHA2_USE_BZERO_BCOPY)
- +/* Abort with an error if BOTH options are defined */
- +#error Define either SHA2_USE_MEMSET_MEMCPY or SHA2_USE_BZERO_BCOPY, not both!
- +#endif
- +
- +#ifdef SHA2_USE_MEMSET_MEMCPY
- +#define MEMSET_BZERO(p,l) memset((p), 0, (l))
- +#define MEMCPY_BCOPY(d,s,l) memcpy((d), (s), (l))
- +#endif
- +#ifdef SHA2_USE_BZERO_BCOPY
- +#define MEMSET_BZERO(p,l) bzero((p), (l))
- +#define MEMCPY_BCOPY(d,s,l) bcopy((s), (d), (l))
- +#endif
- +
- /*
- * Define the followingsha2_* types to types of the correct length on
- * the native archtecture. Most BSD systems and Linux define u_intXX_t
- @@ -174,7 +201,7 @@ static inline void put32be(sha2_byte* data, sha2_word32 val)
- data[1] = val; val >>= 8;
- data[0] = val;
- #else /* BYTE_ORDER != LITTLE_ENDIAN */
- - MEMCPY_BCOPY(data, &val, sizeof(tmp));
- + MEMCPY_BCOPY(data, &val, sizeof(val));
- #endif /* BYTE_ORDER != LITTLE_ENDIAN */
- }
-
- @@ -209,7 +236,7 @@ static inline void put64be(sha2_byte* data, sha2_word64 val)
- data[1] = val; val >>= 8;
- data[0] = val;
- #else /* BYTE_ORDER != LITTLE_ENDIAN */
- - MEMCPY_BCOPY(data, &val, sizeof(tmp));
- + MEMCPY_BCOPY(data, &val, sizeof(val));
- #endif /* BYTE_ORDER != LITTLE_ENDIAN */
- }
-
- @@ -225,33 +252,6 @@ static inline void put64be(sha2_byte* data, sha2_word64 val)
- } \
- }
-
- -/*
- - * Macros for copying blocks of memory and for zeroing out ranges
- - * of memory. Using these macros makes it easy to switch from
- - * using memset()/memcpy() and using bzero()/bcopy().
- - *
- - * Please define either SHA2_USE_MEMSET_MEMCPY or define
- - * SHA2_USE_BZERO_BCOPY depending on which function set you
- - * choose to use:
- - */
- -#if !defined(SHA2_USE_MEMSET_MEMCPY) && !defined(SHA2_USE_BZERO_BCOPY)
- -/* Default to memset()/memcpy() if no option is specified */
- -#define SHA2_USE_MEMSET_MEMCPY 1
- -#endif
- -#if defined(SHA2_USE_MEMSET_MEMCPY) && defined(SHA2_USE_BZERO_BCOPY)
- -/* Abort with an error if BOTH options are defined */
- -#error Define either SHA2_USE_MEMSET_MEMCPY or SHA2_USE_BZERO_BCOPY, not both!
- -#endif
- -
- -#ifdef SHA2_USE_MEMSET_MEMCPY
- -#define MEMSET_BZERO(p,l) memset((p), 0, (l))
- -#define MEMCPY_BCOPY(d,s,l) memcpy((d), (s), (l))
- -#endif
- -#ifdef SHA2_USE_BZERO_BCOPY
- -#define MEMSET_BZERO(p,l) bzero((p), (l))
- -#define MEMCPY_BCOPY(d,s,l) bcopy((s), (d), (l))
- -#endif
- -
-
- /*** THE SIX LOGICAL FUNCTIONS ****************************************/
- /*
- --
- 2.26.2
|