"(SELECT package FROM package_info WHERE package_disable='false')";
GSList *list;
- len += strlen(" WHERE 1=1");
strncat(buf, " WHERE 1=1", MAX_QUERY_LEN - len - 1);
+ len += strlen(" WHERE 1=1");
if (filter == NULL) {
strncat(buf, query_pkg_disable, MAX_QUERY_LEN - len - 1);
if (condition == NULL)
continue;
- len += strlen(" AND ");
strncat(buf, " AND ", MAX_QUERY_LEN - len - 1);
+ len += strlen(" AND ");
- len += strlen(condition);
strncat(buf, condition, sizeof(buf) - len - 1);
+ len += strlen(condition);
free(condition);
condition = NULL;
}
if (filter->list_metadata) {
- len += strlen(" AND (");
strncat(buf, " AND (", MAX_QUERY_LEN - len - 1);
+ len += strlen(" AND (");
}
for (list = filter->list_metadata; list; list = list->next) {
joined |= __get_metadata_filter_condition(list->data,
&condition, bind_params);
if (condition == NULL)
continue;
- len += strlen(condition);
strncat(buf, condition, sizeof(buf) - len - 1);
+ len += strlen(condition);
free(condition);
condition = NULL;
- len += strlen(" OR ");
strncat(buf, " OR ", MAX_QUERY_LEN - len - 1);
+ len += strlen(" OR ");
}
if (filter->list_metadata) {
- len += strlen("1=0)");
strncat(buf, "1=0)", MAX_QUERY_LEN - len - 1);
+ len += strlen("1=0)");
}
if (joined & E_PMINFO_APPINFO_JOIN_LOCALIZED_INFO) {
len += strlen(join_appinfo_for_uid);
}
strncat(tmp_query, buf, MAX_QUERY_LEN - len - 1);
-
len += strlen(buf);
+
strncat(tmp_query, query_pkg_disable, MAX_QUERY_LEN - len - 1);
*query = strdup(tmp_query);
if (filter == NULL)
return PMINFO_R_OK;
- len += strlen(" WHERE 1=1 ");
strncat(buf, " WHERE 1=1 ", MAX_QUERY_LEN - len - 1);
+ len += strlen(" WHERE 1=1 ");
for (list = filter->list; list; list = list->next) {
joined |= __get_filter_condition(list->data, uid, &condition,
bind_params);
if (condition == NULL)
continue;
- len += strlen(" AND ");
strncat(buf, " AND ", MAX_QUERY_LEN - len - 1);
+ len += strlen(" AND ");
- len += strlen(condition);
strncat(buf, condition, sizeof(buf) - len - 1);
+ len += strlen(condition);
free(condition);
condition = NULL;
}
int flag = 0;
char *ptr = NULL;
char *saveptr = NULL;
+ size_t len = 0;
switch (node->prop) {
case E_PMINFO_PKGINFO_PROP_PACKAGE_ID:
ptr = strtok_r(node->value, ",", &saveptr);
if (ptr == NULL)
return 0;
- strncat(buf, "?", MAX_QUERY_LEN - 2);
+ strncat(buf, "?", MAX_QUERY_LEN - len - 1);
+ len += strlen("?");
*params = g_list_append(*params, strdup(ptr));
while ((ptr = strtok_r(NULL, ",", &saveptr))) {
- strncat(buf, ", ?", MAX_QUERY_LEN - strlen(", ?") - 1);
+ strncat(buf, ", ?", MAX_QUERY_LEN - len - 1);
+ len += strlen(", ?");
*params = g_list_append(*params, strdup(ptr));
}
- strncat(buf, ")", MAX_QUERY_LEN - 2);
+ strncat(buf, ")", MAX_QUERY_LEN - len - 1);
+ len += strlen("?");
*condition = strdup(buf);
flag = E_PMINFO_APPINFO_JOIN_CATEGORY;
char buf[MAX_QUERY_LEN];
size_t len = 0;
- len += strlen("(package_app_app_metadata.md_key=?");
snprintf(buf, sizeof(buf), "(package_app_app_metadata.md_key=?");
+ len += strlen("(package_app_app_metadata.md_key=?");
if (node->value) {
- len += strlen(" AND package_app_app_metadata.md_value=?");
strncat(buf, " AND package_app_app_metadata.md_value=?",
sizeof(buf) - len - 1);
+ len += strlen(" AND package_app_app_metadata.md_value=?");
}
- len += strlen(")");
strncat(buf, ")", sizeof(buf) - len - 1);
+ len += strlen(")");
*condition = strdup(buf);
*params = g_list_append(*params, strdup(node->key));