aboutsummaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-libopeniscsiusr-Compare-with-max-int-instead-of-max-.patch
blob: c71f01299bfefc596f06d6a8979a13dd2ff4e787 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
From 7bdaa32c80bb7d37668c1ff6d88bb02428459a0f Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 21 Oct 2020 09:11:20 -0700
Subject: [PATCH] libopeniscsiusr: Compare with max int instead of max long

This compares value member of int_list_tbl struct which is of unsigned
int type.

struct int_list_tbl {
const char *name;
unsigned int value;
};

Clang compiler reports this comparison when
-Wtautological-constant-out-of-range-compare is enabled

| idbm.c:1042:2: error: result of comparison of constant 18446744073709551615 with expression of type 'unsigned int' is always true [-Werror,-Wtautological-constant-out-of-range-compare]
|         _rec_int_list(SESSION_CHAP_ALGS, recs, node, session.auth.chap_algs,
|         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| idbm.c:263:23: note: expanded from macro '_rec_int_list'
|                 if (_org->_name[_i] != ~0UL) { \
|                     ~~~~~~~~~~~~~~~ ^  ~~~~

Since max value for int can be less than unsinged long e.g. on LP64 its
better to use UINT_MAX here

Upstream-Status: Submitted [https://github.com/open-iscsi/open-iscsi/pull/227]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 libopeniscsiusr/idbm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libopeniscsiusr/idbm.c b/libopeniscsiusr/idbm.c
index 7bc2381..060196f 100644
--- a/libopeniscsiusr/idbm.c
+++ b/libopeniscsiusr/idbm.c
@@ -260,7 +260,7 @@ do {\
 	_recs[_n].type = TYPE_INT_LIST; \
 	_strncpy(_recs[_n].name, _key, NAME_MAXVAL); \
 	for (unsigned int _i = 0; _i < ARRAY_LEN(_org->_name); _i++) { \
-		if (_org->_name[_i] != ~0UL) { \
+		if (_org->_name[_i] != UINT_MAX) { \
 			for (unsigned int _j = 0; _j < ARRAY_LEN(_tbl); _j++) { \
 				if (_tbl[_j].value == _org->_name[_i]) { \
 					strcat(_recs[_n].value, _tbl[_j].name); \
-- 
2.29.0