From 248474b74f4e33c09fda855a74a02c7029f6e2f9 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Thu, 10 Oct 2013 10:20:16 +0200 Subject: bugfix: array-based ==/!= comparisions lead to invalid results This was a regression introduced in 7.3.5 bei the PRI optimizer --- ChangeLog | 2 ++ grammar/rainerscript.c | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 80238018..b61e861f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,5 @@ +- bugfix: array-based ==/!= comparisions lead to invalid results + This was a regression introduced in 7.3.5 bei the PRI optimizer --------------------------------------------------------------------------- Version 7.4.4 [v7.4-stable] 2013-09-03 - better error messages in GuardTime signature provider diff --git a/grammar/rainerscript.c b/grammar/rainerscript.c index 2b8d600d..f4833679 100644 --- a/grammar/rainerscript.c +++ b/grammar/rainerscript.c @@ -2779,7 +2779,7 @@ cnfexprOptimize_CMP_var(struct cnfexpr *expr) parser_errmsg("invalid facility '%s', expression will always " "evaluate to FALSE", cstr); } else { - /* we can acutally optimize! */ + /* we can actually optimize! */ DBGPRINTF("optimizer: change comparison OP to FUNC prifilt()\n"); func = cnffuncNew_prifilt(fac); if(expr->nodetype == CMP_NE) @@ -2858,7 +2858,7 @@ cnfexprOptimize_AND_OR(struct cnfexpr *expr) static inline void cnfexprOptimize_CMPEQ_arr(struct cnfarray *arr) { - DBGPRINTF("optimizer: sorting array for CMP_EQ/NEQ comparison\n"); + DBGPRINTF("optimizer: sorting array of %d members for CMP_EQ/NEQ comparison\n", arr->nmemb); qsort(arr->arr, arr->nmemb, sizeof(es_str_t*), qs_arrcmp); } @@ -2922,7 +2922,8 @@ cnfexprOptimize(struct cnfexpr *expr) } if(expr->l->nodetype == 'V') { expr = cnfexprOptimize_CMP_var(expr); - } else if(expr->r->nodetype == 'A') { + } + if(expr->r->nodetype == 'A') { cnfexprOptimize_CMPEQ_arr((struct cnfarray *)expr->r); } break; -- cgit v1.2.3 From bd4eb7e95ed133ef195d77386f4c41b3ee76627b Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Thu, 10 Oct 2013 11:45:09 +0200 Subject: nit: re-order ChangeLog entries --- ChangeLog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index c6512c48..1d2d7135 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,3 @@ -- bugfix: array-based ==/!= comparisions lead to invalid results - This was a regression introduced in 7.3.5 bei the PRI optimizer --------------------------------------------------------------------------- Version 7.4.5 [v7.4-stable] 2013-09-?? - mmanon: removed the check for specific "terminator characters" after @@ -10,6 +8,8 @@ Version 7.4.5 [v7.4-stable] 2013-09-?? bugfix, that should be applied to the stable branch. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=477 Thanks to Muri Cicanor for initiating the discussion +- bugfix: array-based ==/!= comparisions lead to invalid results + This was a regression introduced in 7.3.5 bei the PRI optimizer - bugfix: omprog blocked signals to executed programs The made it impossible to send signals to programs executed via omprog. -- cgit v1.2.3 From 81e9afee45c669a0d5a29757cae70e6e224541be Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Thu, 10 Oct 2013 11:46:36 +0200 Subject: require libestr 0.1.7 --- ChangeLog | 2 ++ configure.ac | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 1d2d7135..e769518f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,8 @@ Version 7.4.5 [v7.4-stable] 2013-09-?? bugfix, that should be applied to the stable branch. closes: http://bugzilla.adiscon.com/show_bug.cgi?id=477 Thanks to Muri Cicanor for initiating the discussion +- now requires libestr 0.1.7 as early versions had a nasty bug in + string comparisons - bugfix: array-based ==/!= comparisions lead to invalid results This was a regression introduced in 7.3.5 bei the PRI optimizer - bugfix: omprog blocked signals to executed programs diff --git a/configure.ac b/configure.ac index 017116ef..43b1ad01 100644 --- a/configure.ac +++ b/configure.ac @@ -32,7 +32,7 @@ AC_CANONICAL_HOST PKG_PROG_PKG_CONFIG # modules we require -PKG_CHECK_MODULES(LIBESTR, libestr >= 0.1.5) +PKG_CHECK_MODULES(LIBESTR, libestr >= 0.1.7) PKG_CHECK_MODULES([JSON_C], [json],, [ PKG_CHECK_MODULES([JSON_C], [json-c]) ]) -- cgit v1.2.3