Changeset: db0fe3dd4300 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/db0fe3dd4300
Modified Files:
sql/server/rel_optimize_sel.c
sql/test/BugTracker-2026/Tests/7835-strcmp-NULL-crash.test
sql/test/BugTracker-2026/Tests/All
Branch: Dec2025
Log Message:
Fix for #7835
Add checks on NULL before doing strcmp().
diffs (43 lines):
diff --git a/sql/server/rel_optimize_sel.c b/sql/server/rel_optimize_sel.c
--- a/sql/server/rel_optimize_sel.c
+++ b/sql/server/rel_optimize_sel.c
@@ -3631,7 +3631,9 @@ filter_column_in_partition_by_columns(sq
char *keyColTableName = keyCol->l;
char *keyColColumnName = keyCol->r;
- if (!strcmp(tableName, keyColTableName) &&
!strcmp(columnName, keyColColumnName)) {
+ if (keyColTableName != NULL && keyColColumnName != NULL
&&
+ !strcmp(tableName, keyColTableName) &&
+ !strcmp(columnName, keyColColumnName)) {
/* match */
return true;
}
diff --git a/sql/test/BugTracker-2026/Tests/7835-strcmp-NULL-crash.test
b/sql/test/BugTracker-2026/Tests/7835-strcmp-NULL-crash.test
--- a/sql/test/BugTracker-2026/Tests/7835-strcmp-NULL-crash.test
+++ b/sql/test/BugTracker-2026/Tests/7835-strcmp-NULL-crash.test
@@ -1,4 +1,14 @@
-query II
+query II rowsort
SELECT x , CASE WHEN x = 12 THEN 1 ELSE x * ( 3 - x ) END AS x FROM ( SELECT
10 AS x UNION SELECT 11 AS x UNION SELECT 12 AS x UNION SELECT 10 AS x GROUP BY
x HAVING NOT x < ANY ( NULLIF ( ( WITH RECURSIVE x ( x ) AS ( SELECT 1 UNION
SELECT x + 1 FROM x WHERE x < 8 ) SELECT - COUNT ( * ) FROM ( WITH RECURSIVE x
( x ) AS ( SELECT ( - 70 ) - - 99 * - 0 AS x UNION SELECT x + 1 FROM ( SELECT
rank ( ) OVER ( ) AS x FROM ( SELECT count ( * ) , substr ( x , count ( x ) ,
NULL ) AS x FROM x ) ) AS x WHERE x < 20 ) SELECT x FROM x WHERE x NOT IN ( 8 ,
12 , 16 , 24 , 32 ) OR x = 512 ) WHERE NOT 218 BETWEEN - x AND NULL ) , NULL )
IS NULL ) UNION SELECT 11 AS x UNION SELECT CAST( '-1.0' AS NUMERIC ) UNION
SELECT 265 AS x )
----
+-1
+-4
+10
+-70
+11
+-88
+12
+1
+265
+-69430
diff --git a/sql/test/BugTracker-2026/Tests/All
b/sql/test/BugTracker-2026/Tests/All
--- a/sql/test/BugTracker-2026/Tests/All
+++ b/sql/test/BugTracker-2026/Tests/All
@@ -38,5 +38,5 @@ KNOWNFAIL?7801-assertion-failure
7832-strcmp-NULL-crash
KNOWNFAIL?7833-assertion-failure
7834-BATsubcross-more-than-one-match
-KNOWNFAIL?7835-strcmp-NULL-crash
+7835-strcmp-NULL-crash
7836-use-after-free
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]