From cad5353aaa0b198f3cb8397424710c3656e50f7a Mon Sep 17 00:00:00 2001
From: Ondrej Zajicek <santiago@crfreenet.org>
Date: Tue, 10 Feb 2026 03:41:59 +0100
Subject: Filter: Fix string ordering

Function strcmp() returns negative / 0 / positive, but val_compare()
is expected to return -1 / 0 / 1.

diff --git a/filter/data.c b/filter/data.c
index f5a9e5eec..a685aa1a4 100644
--- a/filter/data.c
+++ b/filter/data.c
@@ -210,7 +210,8 @@ val_compare(const struct f_val *v1, const struct f_val *v2)
   case T_NET:
     return net_compare(v1->val.net, v2->val.net);
   case T_STRING:
-    return strcmp(v1->val.s, v2->val.s);
+    int i = strcmp(v1->val.s, v2->val.s);
+    return (i > 0) - (i < 0);
   case T_PATH:
     return as_path_compare(v1->val.ad, v2->val.ad);
   case T_ROUTE:
