diff mbox series

libselinux: Fix security_get_boolean_names build error

Message ID 20190702182138.7209-1-richard_c_haines@btinternet.com (mailing list archive)
State Not Applicable
Headers show
Series libselinux: Fix security_get_boolean_names build error | expand

Commit Message

Richard Haines July 2, 2019, 6:21 p.m. UTC
When running 'make' from libselinux on Fedora 30 (gcc 9.1.1) the
following error is reported:

bute=const -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wstrict-overflow=5
-I../include -D_GNU_SOURCE  -DNO_ANDROID_BACKEND  -c -o booleans.o
booleans.c
booleans.c: In function ‘security_get_boolean_names’:
booleans.c:39:5: error: assuming signed overflow does not occur when
changing X +- C1 cmp C2 to X cmp C2 -+ C1 [-Werror=strict-overflow]
  39 | int security_get_boolean_names(char ***names, int *len)
      |    ^~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[1]: *** [Makefile:171: booleans.o] Error 1

This is because of 'for (--i; i >= 0; --i)', however the --i is not
required anyway as proven when simulating oom and running valgrind.

Signed-off-by: Richard Haines <richard_c_haines@btinternet.com>
---
 libselinux/src/booleans.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Richard Haines July 7, 2019, 5:24 p.m. UTC | #1
On Tue, 2019-07-02 at 19:21 +0100, Richard Haines wrote:
> When running 'make' from libselinux on Fedora 30 (gcc 9.1.1) the
> following error is reported:
> 
> bute=const -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wstrict-overflow=5
> -I../include -D_GNU_SOURCE  -DNO_ANDROID_BACKEND  -c -o booleans.o
> booleans.c
> booleans.c: In function ‘security_get_boolean_names’:
> booleans.c:39:5: error: assuming signed overflow does not occur when
> changing X +- C1 cmp C2 to X cmp C2 -+ C1 [-Werror=strict-overflow]
>   39 | int security_get_boolean_names(char ***names, int *len)
>       |    ^~~~~~~~~~~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
> make[1]: *** [Makefile:171: booleans.o] Error 1
> 
> This is because of 'for (--i; i >= 0; --i)', however the --i is not
> required anyway as proven when simulating oom and running valgrind.

Please ignore this patch. Tried to cancel but delivered to list four
days later. The [1] patch is the correct one to review.

[1] 
https://lore.kernel.org/selinux/20190703141255.6321-1-richard_c_haines@btinternet.com/T/#u

> 
> Signed-off-by: Richard Haines <richard_c_haines@btinternet.com>
> ---
>  libselinux/src/booleans.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/libselinux/src/booleans.c b/libselinux/src/booleans.c
> index ab1e0754..33bf13c7 100644
> --- a/libselinux/src/booleans.c
> +++ b/libselinux/src/booleans.c
> @@ -81,7 +81,7 @@ int security_get_boolean_names(char ***names, int
> *len)
>  	free(namelist);
>  	return rc;
>        bad_freen:
> -	for (--i; i >= 0; --i)
> +	for (; i >= 0; --i)
>  		free(n[i]);
>  	free(n);
>        bad:
diff mbox series

Patch

diff --git a/libselinux/src/booleans.c b/libselinux/src/booleans.c
index ab1e0754..33bf13c7 100644
--- a/libselinux/src/booleans.c
+++ b/libselinux/src/booleans.c
@@ -81,7 +81,7 @@  int security_get_boolean_names(char ***names, int *len)
 	free(namelist);
 	return rc;
       bad_freen:
-	for (--i; i >= 0; --i)
+	for (; i >= 0; --i)
 		free(n[i]);
 	free(n);
       bad: