diff mbox series

[OpenWrt-Devel,ubus,02/16] ubusd: fix comparison of integers of different signs

Message ID 20191219221125.22646-3-ynezz@true.cz
State Accepted
Delegated to: Petr Štetiar
Headers show
Series GitLab CI, tests, fuzzing, fixes and improvements | expand

Commit Message

Petr Štetiar Dec. 19, 2019, 10:11 p.m. UTC
Fixes following clang-9 compiler warning:

 ubusd.c:36:19: error: comparison of integers of different signs: 'uint32_t' (aka 'unsigned int') and 'int' [-Werror,-Wsign-compare]
         if (ub->refcount == ~0) {
             ~~~~~~~~~~~~ ^  ~~

Signed-off-by: Petr Štetiar <ynezz@true.cz>
---
 ubusd.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/ubusd.c b/ubusd.c
index 0f35d3e25d34..7738f50f9779 100644
--- a/ubusd.c
+++ b/ubusd.c
@@ -30,10 +30,12 @@ 
 
 #include "ubusd.h"
 
+#define USES_EXTERNAL_BUFFER ~0U
+
 static struct ubus_msg_buf *ubus_msg_ref(struct ubus_msg_buf *ub)
 {
 	struct ubus_msg_buf *new_ub;
-	if (ub->refcount == ~0) {
+	if (ub->refcount == USES_EXTERNAL_BUFFER) {
 		new_ub = ubus_msg_new(ub->data, ub->len, false);
 		if (!new_ub)
 			return NULL;
@@ -61,7 +63,7 @@  struct ubus_msg_buf *ubus_msg_new(void *data, int len, bool shared)
 	ub->fd = -1;
 
 	if (shared) {
-		ub->refcount = ~0;
+		ub->refcount = USES_EXTERNAL_BUFFER;
 		ub->data = data;
 	} else {
 		ub->refcount = 1;
@@ -78,7 +80,7 @@  void ubus_msg_free(struct ubus_msg_buf *ub)
 {
 	switch (ub->refcount) {
 	case 1:
-	case ~0:
+	case USES_EXTERNAL_BUFFER:
 		if (ub->fd >= 0)
 			close(ub->fd);