From 79115caeb6122fa277dd8c79979a498df06ea080 Mon Sep 17 00:00:00 2001 From: Jeesun Kim Date: Fri, 8 Sep 2017 14:54:19 +0900 Subject: [PATCH] check view uri in calendar_query_set_filter API Change-Id: Iae3e0627a65867198f46e2f1b06d688d72c6d35d --- common/cal_query.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/common/cal_query.c b/common/cal_query.c index 7429dd5..38175b4 100644 --- a/common/cal_query.c +++ b/common/cal_query.c @@ -112,29 +112,38 @@ EXPORT_API int calendar_query_set_filter(calendar_query_h query, calendar_filter { CHECK_CALENDAR_SUPPORTED(CALENDAR_FEATURE); - cal_query_s *que; + cal_query_s *s_query; + cal_composite_filter_s *s_filter; calendar_filter_h new_filter; int ret = CALENDAR_ERROR_NONE; RETV_IF(NULL == query, CALENDAR_ERROR_INVALID_PARAMETER); RETV_IF(NULL == filter, CALENDAR_ERROR_INVALID_PARAMETER); - que = (cal_query_s *)query; - - if (NULL == ((cal_composite_filter_s*)filter)->filters) { + s_query = (cal_query_s *)query; + s_filter = (cal_composite_filter_s*)filter; + if (NULL == s_filter->filters) { /* LCOV_EXCL_START */ ERR("Empty filter"); return CALENDAR_ERROR_NO_DATA; /* LCOV_EXCL_STOP */ } + if (s_query->view_uri && s_filter->view_uri + && CAL_STRING_EQUAL != strcmp(s_query->view_uri, s_filter->view_uri)) { + /* LCOV_EXCL_START */ + ERR("View is not same query[%s] filter[%s]", s_query->view_uri, s_filter->view_uri); + return CALENDAR_ERROR_INVALID_PARAMETER; + /* LCOV_EXCL_STOP */ + } + ret = cal_filter_clone(filter, &new_filter); RETV_IF(ret != CALENDAR_ERROR_NONE, ret); - if (que->filter) - calendar_filter_destroy((calendar_filter_h)que->filter); + if (s_query->filter) + calendar_filter_destroy((calendar_filter_h)s_query->filter); - que->filter = (cal_composite_filter_s*)new_filter; + s_query->filter = (cal_composite_filter_s*)new_filter; return ret; } -- 2.7.4