*
* LTTng filter IR validate string
*
- * Copyright 2014 - Jérémie Galarneau <jeremie.galarneau@efficios.com>
+ * Copyright 2014 Jérémie Galarneau <jeremie.galarneau@efficios.com>
*
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License, version 2.1 only,
- * as published by the Free Software Foundation.
+ * SPDX-License-Identifier: LGPL-2.1-only
*
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <stdio.h>
#include <assert.h>
#include <errno.h>
#include <inttypes.h>
+
+#include <common/macros.h>
+
#include "filter-ast.h"
#include "filter-parser.h"
#include "filter-ir.h"
if (node->data_type == IR_DATA_STRING) {
const char *str;
- assert(node->u.load.u.string);
- str = node->u.load.u.string;
+ assert(node->u.load.u.string.value);
+ str = node->u.load.u.string.value;
- /*
- * Make sure that if a non-escaped wildcard is
- * present, it is the last character of the string.
- */
for (;;) {
enum parse_char_result res;
str++;
switch (res) {
- case PARSE_CHAR_WILDCARD:
- {
- if (*str) {
- /*
- * Found a wildcard followed by non-null
- * character; unsupported.
- */
- ret = -EINVAL;
- fprintf(stderr,
- "Wildcards may only be used as the last character of a string in a filter.\n");
- goto end_load;
- }
- break;
- }
case PARSE_CHAR_UNKNOWN:
ret = -EINVAL;
fprintf(stderr,
}
}
+LTTNG_HIDDEN
int filter_visitor_ir_validate_string(struct filter_parser_ctx *ctx)
{
return validate_string(ctx->ir_root);