From: Yu Watanabe Date: Sat, 17 Aug 2024 11:13:12 +0000 (+0900) Subject: network/routing-policy-rule: use int32_t for suppress_prefixlen X-Git-Tag: v257-rc1~678^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=933448defeff377c64ec6104917e388dab9a2177;p=thirdparty%2Fsystemd.git network/routing-policy-rule: use int32_t for suppress_prefixlen The kernel parses FRA_SUPPRESS_PREFIXLEN as uint32_t, but internally handled as signed integer and negative values as unset. Let's explicitly specify the size of the variable. No functional change, just refactoring. --- diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c index 35d13eb38f6..5ace2b9b11c 100644 --- a/src/basic/parse-util.c +++ b/src/basic/parse-util.c @@ -714,7 +714,7 @@ int parse_ip_port_range(const char *s, uint16_t *low, uint16_t *high, bool allow return 0; } -int parse_ip_prefix_length(const char *s, int *ret) { +int parse_ip_prefix_length(const char *s, int32_t *ret) { unsigned l; int r; @@ -725,7 +725,7 @@ int parse_ip_prefix_length(const char *s, int *ret) { if (l > 128) return -ERANGE; - *ret = (int) l; + *ret = (int32_t) l; return 0; } diff --git a/src/basic/parse-util.h b/src/basic/parse-util.h index c12988ef204..e4ae48366c2 100644 --- a/src/basic/parse-util.h +++ b/src/basic/parse-util.h @@ -141,7 +141,7 @@ int parse_nice(const char *p, int *ret); int parse_ip_port(const char *s, uint16_t *ret); int parse_ip_port_range(const char *s, uint16_t *low, uint16_t *high, bool allow_zero); -int parse_ip_prefix_length(const char *s, int *ret); +int parse_ip_prefix_length(const char *s, int32_t *ret); int parse_oom_score_adjust(const char *s, int *ret); diff --git a/src/network/networkd-routing-policy-rule.h b/src/network/networkd-routing-policy-rule.h index 23aa041180c..fbde298f052 100644 --- a/src/network/networkd-routing-policy-rule.h +++ b/src/network/networkd-routing-policy-rule.h @@ -40,7 +40,7 @@ typedef struct RoutingPolicyRule { /* FRA_FLOW */ /* FRA_TUN_ID */ int32_t suppress_ifgroup; /* FRA_SUPPRESS_IFGROUP */ - int suppress_prefixlen; /* FRA_SUPPRESS_PREFIXLEN */ + int32_t suppress_prefixlen; /* FRA_SUPPRESS_PREFIXLEN */ uint32_t table; /* FRA_TABLE, also used in struct fib_rule_hdr */ uint32_t fwmask; /* FRA_FWMASK */ char *oif; /* FRA_OIFNAME */