50 lines
1.4 KiB
Diff
50 lines
1.4 KiB
Diff
|
From 4c211953b1e6290653fa3bb151b85be29d02288f Mon Sep 17 00:00:00 2001
|
||
|
From: Pablo Neira Ayuso <pablo@netfilter.org>
|
||
|
Date: Wed, 10 Oct 2018 19:19:18 +0200
|
||
|
Subject: [PATCH] segtree: set proper error cause on existing elements
|
||
|
|
||
|
Adding new elements result in a confusing "Success" error message.
|
||
|
|
||
|
# nft add element x y { 0-3 }
|
||
|
[...]
|
||
|
Error: Could not process rule: Success
|
||
|
add element x y { 0-3 }
|
||
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||
|
|
||
|
after this patch, this reports:
|
||
|
|
||
|
Error: Could not process rule: File exists
|
||
|
add element x y { 0-3 }
|
||
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||
|
|
||
|
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||
|
(cherry picked from commit 8ef0efb97006081e7f6054a950cb3614dd57729f)
|
||
|
Signed-off-by: Phil Sutter <psutter@redhat.com>
|
||
|
---
|
||
|
src/segtree.c | 2 ++
|
||
|
1 file changed, 2 insertions(+)
|
||
|
|
||
|
diff --git a/src/segtree.c b/src/segtree.c
|
||
|
index 4ee09884cbde6..5685618b3724a 100644
|
||
|
--- a/src/segtree.c
|
||
|
+++ b/src/segtree.c
|
||
|
@@ -270,6 +270,7 @@ static int ei_insert(struct list_head *msgs, struct seg_tree *tree,
|
||
|
|
||
|
return 0;
|
||
|
err:
|
||
|
+ errno = EEXIST;
|
||
|
return expr_binary_error(msgs, lei->expr, new->expr,
|
||
|
"conflicting intervals specified");
|
||
|
}
|
||
|
@@ -371,6 +372,7 @@ static int set_overlap(struct list_head *msgs, const struct set *set,
|
||
|
|
||
|
expr_error(msgs, new_intervals[i]->expr,
|
||
|
"interval overlaps with an existing one");
|
||
|
+ errno = EEXIST;
|
||
|
ret = -1;
|
||
|
goto out;
|
||
|
}
|
||
|
--
|
||
|
2.19.0
|
||
|
|