From a32d5a4afc5bdc4585132765fb02739a8f352e49 Mon Sep 17 00:00:00 2001 From: Peter Rajnoha Date: Thu, 2 Jul 2015 16:05:25 +0200 Subject: [PATCH] report: adjust shared flags based on expected type for reserved values Generic numbers and time values share some operators so make sure we have the flags correctly adjusted based on expected type if we're using reserved values. --- libdm/libdm-report.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libdm/libdm-report.c b/libdm/libdm-report.c index 3f68a9e52..f8bd58188 100644 --- a/libdm/libdm-report.c +++ b/libdm/libdm-report.c @@ -2962,6 +2962,14 @@ static const char *_tok_value(struct dm_report *rh, s = _get_reserved(rh, expected_type, field_num, implicit, s, begin, end, rvw); if (rvw->reserved) { + /* + * FLD_CMP_NUMBER shares operators with FLD_CMP_TIME, + * so adjust flags here based on expected type. + */ + if (expected_type == DM_REPORT_FIELD_TYPE_TIME) + *flags &= ~FLD_CMP_NUMBER; + else if (expected_type == DM_REPORT_FIELD_TYPE_NUMBER) + *flags &= ~FLD_CMP_TIME; *flags |= expected_type; return s; }