More about expressions always false.
1. /src/backend/executor/execExprInterp.c
ndims <= 0 neve be negative, because ndims aways is added up +1
2. src/backend/utils/adt/formatting.c
result is declared long. Comparison with int limits is always false.
3. src/backend/utils/adt/jsonfuncs.c
lindex is declared long. . Comparison with int limits is always false.
4. src/backend/utils/adt/network.c
ip_addrsize is macro and awlays return 4 or 16

regards,
Ranier Vilela
diff --git a/src/backend/executor/execExprInterp.c b/src/backend/executor/execExprInterp.c
index dbed597816..f0ad9f23e5 100644
--- a/src/backend/executor/execExprInterp.c
+++ b/src/backend/executor/execExprInterp.c
@@ -2736,7 +2736,7 @@ ExecEvalArrayExpr(ExprState *state, ExprEvalStep *op)
 				/* Get sub-array details from first member */
 				elem_ndims = this_ndims;
 				ndims = elem_ndims + 1;
-				if (ndims <= 0 || ndims > MAXDIM)
+				if (ndims > MAXDIM)
 					ereport(ERROR,
 							(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
 							 errmsg("number of array dimensions (%d) exceeds " \
diff --git a/src/backend/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c
index 8fcbc2267f..832b3b2ed2 100644
--- a/src/backend/utils/adt/formatting.c
+++ b/src/backend/utils/adt/formatting.c
@@ -2418,13 +2418,13 @@ from_char_parse_int_len(int *dest, char **src, const int len, FormatNode *node,
 									 copy, node->key->name),
 							  errdetail("Value must be an integer."))));
 
-	if (errno == ERANGE || result < INT_MIN || result > INT_MAX)
+	if (errno == ERANGE || result < LONG_MIN || result > LONG_MAX)
 		RETURN_ERROR(ereport(ERROR,
 							 (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE),
 							  errmsg("value for \"%s\" in source string is out of range",
 									 node->key->name),
-							  errdetail("Value must be in the range %d to %d.",
-										INT_MIN, INT_MAX))));
+							  errdetail("Value must be in the range %ld to %ld.",
+										LONG_MIN, LONG_MAX))));
 
 	if (dest != NULL)
 	{
diff --git a/src/backend/utils/adt/jsonfuncs.c b/src/backend/utils/adt/jsonfuncs.c
index 1b0fb2afae..ec988fb6b9 100644
--- a/src/backend/utils/adt/jsonfuncs.c
+++ b/src/backend/utils/adt/jsonfuncs.c
@@ -1406,7 +1406,7 @@ get_jsonb_path_all(FunctionCallInfo fcinfo, bool as_text)
 			errno = 0;
 			lindex = strtol(indextext, &endptr, 10);
 			if (endptr == indextext || *endptr != '\0' || errno != 0 ||
-				lindex > INT_MAX || lindex < INT_MIN)
+				lindex > LONG_MAX || lindex < LONG_MIN)
 				PG_RETURN_NULL();
 
 			if (lindex >= 0)
@@ -4786,11 +4786,11 @@ setPathArray(JsonbIterator **it, Datum *path_elems, bool *path_nulls,
 
 		errno = 0;
 		lindex = strtol(c, &badp, 10);
-		if (errno != 0 || badp == c || *badp != '\0' || lindex > INT_MAX ||
-			lindex < INT_MIN)
+		if (errno != 0 || badp == c || *badp != '\0' || lindex > LONG_MAX ||
+			lindex < LONG_MIN)
 			ereport(ERROR,
 					(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
-					 errmsg("path element at position %d is not an integer: \"%s\"",
+					 errmsg("path element at position %d is not an long integer: \"%s\"",
 							level + 1, c)));
 		idx = lindex;
 	}
diff --git a/src/backend/utils/adt/network.c b/src/backend/utils/adt/network.c
index a6dd8b75aa..bb1e8522dd 100644
--- a/src/backend/utils/adt/network.c
+++ b/src/backend/utils/adt/network.c
@@ -280,8 +280,6 @@ network_send(inet *addr, bool is_cidr)
 	pq_sendbyte(&buf, ip_bits(addr));
 	pq_sendbyte(&buf, is_cidr);
 	nb = ip_addrsize(addr);
-	if (nb < 0)
-		nb = 0;
 	pq_sendbyte(&buf, nb);
 	addrptr = (char *) ip_addr(addr);
 	for (i = 0; i < nb; i++)

Reply via email to