summaryrefslogtreecommitdiff
path: root/src/analysis
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2023-10-22 18:51:23 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2023-10-22 18:51:23 (GMT)
commitc74d1a9d8f1430b4e4f3989b12b9953cbb8fed50 (patch)
tree65b071823601c10965878d1dcd1eb0183bf8064a /src/analysis
parentd1bac978f70b6b2e729b3e03c439d17101a57be8 (diff)
Handle the case where no common item is found from an empty set.
Diffstat (limited to 'src/analysis')
-rw-r--r--src/analysis/scan/items/maxcommon.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/analysis/scan/items/maxcommon.c b/src/analysis/scan/items/maxcommon.c
index 2fe561f..e8c4db3 100644
--- a/src/analysis/scan/items/maxcommon.c
+++ b/src/analysis/scan/items/maxcommon.c
@@ -300,6 +300,12 @@ static bool g_scan_maxcommon_function_run_call(GScanMaxcommonFunction *item, GSc
collected = malloc(arg0_count * sizeof(GScanExpression *));
scores = malloc(arg0_count * sizeof(size_t));
+ if (arg0_count == 0)
+ {
+ best = 0;
+ goto quick_empty;
+ }
+
for (i = 0; i < arg0_count; i++)
{
#ifndef NDEBUG
@@ -357,6 +363,8 @@ static bool g_scan_maxcommon_function_run_call(GScanMaxcommonFunction *item, GSc
assert(best > 0);
+ quick_empty:
+
*out = G_OBJECT(g_scan_literal_expression_new(LVT_UNSIGNED_INTEGER, (unsigned long long []){ best }));
exit: