package/azure-iot-sdk-c: fix build with gcc 11
authorFabrice Fontaine <fontaine.fabrice@gmail.com>
Tue, 3 Aug 2021 14:23:47 +0000 (16:23 +0200)
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Wed, 4 Aug 2021 20:40:13 +0000 (22:40 +0200)
Fix the following build failure with gcc 11:

/tmp/instance-7/output-1/build/azure-iot-sdk-c-LTS_01_2021_Ref01/c-utility/src/hmac.c:211:43: error: argument 2 of type 'uint8_t *' {aka 'unsigned char *'} declared as a pointer [-Werror=array-parameter=]
  211 | int hmacResult(HMACContext *ctx, uint8_t *digest)
      |                                  ~~~~~~~~~^~~~~~
In file included from /tmp/instance-7/output-1/build/azure-iot-sdk-c-LTS_01_2021_Ref01/c-utility/src/hmac.c:13:
/tmp/instance-7/output-1/build/azure-iot-sdk-c-LTS_01_2021_Ref01/c-utility/inc/azure_c_shared_utility/sha.h:252:42: note: previously declared as an array 'uint8_t[64]' {aka 'unsigned char[64]'}
  252 | int hmacResult(HMACContext *ctx, uint8_t digest[USHAMaxHashSize]);
      |                                  ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~

Fixes:
 - http://autobuild.buildroot.org/results/11a6eebd0deea679683a93a5c8355d00acdfe51e

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
package/azure-iot-sdk-c/0001-hmac-c-fix-mismatching-function-prototype.patch [new file with mode: 0644]

diff --git a/package/azure-iot-sdk-c/0001-hmac-c-fix-mismatching-function-prototype.patch b/package/azure-iot-sdk-c/0001-hmac-c-fix-mismatching-function-prototype.patch
new file mode 100644 (file)
index 0000000..0c262e6
--- /dev/null
@@ -0,0 +1,35 @@
+From 3a7997af72e7a4f70109d1639e6725b39046443e Mon Sep 17 00:00:00 2001
+From: Francesco Giancane <30423178+fgiancane8@users.noreply.github.com>
+Date: Fri, 2 Jul 2021 20:47:38 +0200
+Subject: [PATCH] hmac.c: fix mismatching function prototype (#537)
+
+The reported function raises a warning when compilers assert the flag
+`-Warray-parameter=`, signaling that an array-type argument was promoted
+to a pointer-type argument.
+
+While in practice in most C implementations this is correct, fixing the
+warning (and, in this case, indicating the maximum size for the array)
+would represent a best-practice for finding out-of-bound accesses or
+identifying wrongly-sized arrays passed in the function.
+
+Signed-off-by: Francesco Giancane <francesco.giancane@accenture.com>
+[Retrieved from:
+https://github.com/Azure/azure-c-shared-utility/commit/3a7997af72e7a4f70109d1639e6725b39046443e]
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ src/hmac.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/hmac.c b/src/hmac.c
+index 53f2411f8..160af9d2f 100644
+--- a/c-utility/src/hmac.c
++++ b/c-utility/src/hmac.c
+@@ -208,7 +208,7 @@ int hmacFinalBits(HMACContext *ctx,
+ *   sha Error Code.
+ *
+ */
+-int hmacResult(HMACContext *ctx, uint8_t *digest)
++int hmacResult(HMACContext *ctx, uint8_t digest[USHAMaxHashSize])
+ {
+     if (!ctx) return shaNull;