diff mbox series

[BlueZ,1/2] advertising: Make data size explicit for formats

Message ID 20210127174050.1536152-2-brian.gix@intel.com
State New
Headers show
Series Fix 32 bit Compiler Errors | expand

Commit Message

Brian Gix Jan. 27, 2021, 5:40 p.m. UTC
On some 32 bit systems sizeof does not return (unsigned long)

Fixes the error:

In file included from src/advertising.c:30:
src/advertising.c: In function ‘read_controller_cap_complete’:
src/log.h:60:20: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘unsigned int’ [-Werror=format=]
   60 |  btd_error(0xffff, "%s:%s() " fmt, __FILE__, __func__, ## arg)
      |                    ^~~~~~~~~~
src/advertising.c:1757:3: note: in expansion of macro ‘error’
 1757 |   error("Controller capabilities malformed, size %lu != %u",
      |   ^~~~~
src/advertising.c:1757:52: note: format string is defined here
 1757 |   error("Controller capabilities malformed, size %lu != %u",
      |                                                  ~~^
      |                                                    |
      |                                                    long unsigned int
      |                                                  %u
---
 src/advertising.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Denis Kenzior Jan. 27, 2021, 7:29 p.m. UTC | #1
Hi Brian,

>   		error("Controller capabilities malformed, size %lu != %u",

Note that it might make things prettier/easier to use %zu instead.  Refer to 
'man 3 printf'

> -				sizeof(rp->cap_len) + rp->cap_len, length);
> +			(long) sizeof(rp->cap_len) + rp->cap_len, length);
>   		return;
>   	}
>   
> 

Regards,
-Denis
diff mbox series

Patch

diff --git a/src/advertising.c b/src/advertising.c
index 4f5123fa1..36e737987 100644
--- a/src/advertising.c
+++ b/src/advertising.c
@@ -1755,7 +1755,7 @@  static void read_controller_cap_complete(uint8_t status, uint16_t length,
 
 	if (sizeof(rp->cap_len) + rp->cap_len != length) {
 		error("Controller capabilities malformed, size %lu != %u",
-				sizeof(rp->cap_len) + rp->cap_len, length);
+			(long) sizeof(rp->cap_len) + rp->cap_len, length);
 		return;
 	}