From 90117db5dc75508533ce1ed7bf08f5ea567145d6 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 18 Apr 2023 07:32:47 -0400 Subject: [PATCH] Split a complex condition into separate ones Make it more readable Signed-off-by: Andrzej Kurek --- library/x509_crt.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/library/x509_crt.c b/library/x509_crt.c index fc62057082..cddbcdb7bd 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -2637,12 +2637,15 @@ static int x509_inet_pton_ipv6(const char *src, void *dst) } ++p; } while (nonzero_groups < 8); - if ((zero_group_start != -1 ? nonzero_groups > 6 : nonzero_groups != 8) || - *p != '\0') { + + if (*p != '\0') { return -1; } if (zero_group_start != -1) { + if (nonzero_groups > 6) { + return -1; + } int zero_groups = 8 - nonzero_groups; int groups_after_zero = nonzero_groups - zero_group_start; @@ -2653,6 +2656,10 @@ static int x509_inet_pton_ipv6(const char *src, void *dst) groups_after_zero * sizeof(*addr)); } memset(addr + zero_group_start, 0, zero_groups * sizeof(*addr)); + } else { + if (nonzero_groups != 8) { + return -1; + } } memcpy(dst, addr, sizeof(addr)); return 0;